{
  "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by kayceesrk"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/trunk" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2905,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "8f174d2e951f21fbc48c0c82b25a28c31e78b9da",
            "branch" : [
              {
                "SHA1" : "8f174d2e951f21fbc48c0c82b25a28c31e78b9da",
                "name" : "origin/trunk"
              }
            ]
          },
          "revision" : {
            "SHA1" : "8f174d2e951f21fbc48c0c82b25a28c31e78b9da",
            "branch" : [
              {
                "SHA1" : "8f174d2e951f21fbc48c0c82b25a28c31e78b9da",
                "name" : "origin/trunk"
              }
            ]
          }
        },
        "refs/remotes/origin/trunk" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2338,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "e4b1eb03cb5c45d6cbd85425c626e145ea32a2f9",
            "branch" : [
              {
                "SHA1" : "e4b1eb03cb5c45d6cbd85425c626e145ea32a2f9",
                "name" : "refs/remotes/origin/trunk"
              }
            ]
          },
          "revision" : {
            "SHA1" : "e4b1eb03cb5c45d6cbd85425c626e145ea32a2f9",
            "branch" : [
              {
                "SHA1" : "e4b1eb03cb5c45d6cbd85425c626e145ea32a2f9",
                "name" : "refs/remotes/origin/trunk"
              }
            ]
          }
        },
        "origin/4.14" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2863,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "8899c05cfc9027e74dfe88c71cc78bac5102e771",
            "branch" : [
              {
                "SHA1" : "8899c05cfc9027e74dfe88c71cc78bac5102e771",
                "name" : "origin/4.14"
              }
            ]
          },
          "revision" : {
            "SHA1" : "8899c05cfc9027e74dfe88c71cc78bac5102e771",
            "branch" : [
              {
                "SHA1" : "8899c05cfc9027e74dfe88c71cc78bac5102e771",
                "name" : "origin/4.14"
              }
            ]
          }
        },
        "origin/5.2" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2823,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "da1cc7acd855ae1aaf309f2a11f0f91a953a4377",
            "branch" : [
              {
                "SHA1" : "da1cc7acd855ae1aaf309f2a11f0f91a953a4377",
                "name" : "origin/5.2"
              }
            ]
          },
          "revision" : {
            "SHA1" : "da1cc7acd855ae1aaf309f2a11f0f91a953a4377",
            "branch" : [
              {
                "SHA1" : "da1cc7acd855ae1aaf309f2a11f0f91a953a4377",
                "name" : "origin/5.2"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "8f174d2e951f21fbc48c0c82b25a28c31e78b9da",
        "branch" : [
          {
            "SHA1" : "8f174d2e951f21fbc48c0c82b25a28c31e78b9da",
            "name" : "origin/trunk"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/ocaml/ocaml"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.libs.LibrariesAction"
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    },
    {
      "_class" : "org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction"
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.job.views.FlowGraphAction"
    },
    {
      
    },
    {
      
    },
    {
      
    }
  ],
  "artifacts" : [
    
  ],
  "building" : True,
  "description" : None,
  "displayName" : "#2905",
  "duration" : 0,
  "estimatedDuration" : 800196,
  "executor" : {
    "_class" : "hudson.model.OneOffExecutor"
  },
  "fullDisplayName" : "bootstrap #2905",
  "id" : "2905",
  "keepLog" : False,
  "number" : 2905,
  "queueId" : 23041,
  "result" : None,
  "timestamp" : 1753333681428,
  "url" : "https://ci.inria.fr/ocaml/view/all/job/bootstrap/2905/",
  "changeSets" : [
    {
      "_class" : "hudson.plugins.git.GitChangeSetList",
      "items" : [
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "runtime/domain.c"
          ],
          "commitId" : "68a4b5649c7516ca311c7d4a8798d2ae90f397eb",
          "timestamp" : 1753284673000,
          "author" : {
            "absoluteUrl" : "https://ci.inria.fr/ocaml/user/gabriel.scherer",
            "fullName" : "gabriel.scherer"
          },
          "authorEmail" : "gabriel.scherer@gmail.com",
          "comment" : "domain.c: fix `stw_resize_minor_heaps_reservation`.\u000a\u000aMy PR #14158 merged today introduced a bug in the logic to resize the\u000aminor heaps reservation. It added the following to the\u000a`free_minor_heap_arena` function:\u000a\u000a    domain_state->minor_heap_wsz = 0;\u000a\u000aDoing this is correct when we are freeing the minor heap arena of a\u000adomain that is leaving the STW participant set (the focus of #14158);\u000ait is also correct in\u000a\u000a    int caml_reallocate_minor_heap_arena(asize_t wsize)\u000a    {\u000a      free_minor_heap_arena();\u000a      return allocate_minor_heap_arena(wsize);\u000a    }\u000a\u000awhich is called to change the size of the memory area, so zeroing it\u000ain `free` before setting it in `allocate` is fine. However, it\u000ais *not* correct in\u000a\u000a    static void\u000a    stw_resize_minor_heaps_reservation(caml_domain_state* domain,\u000a                                      void* minor_wsz_data,\u000a                                      int participating_count,\u000a                                      caml_domain_state** participating) {\u000a      caml_empty_minor_heap_no_major_slice_from_stw(\u000a        domain, NULL, participating_count, participating);\u000a\u000a      free_minor_heap_arena();\u000a\u000a      Caml_global_barrier_if_final(participating_count) {\u000a        uintnat new_minor_wsz = (uintnat) minor_wsz_data;\u000a        domain_resize_heaps_reservation_from_stw_single(new_minor_wsz);\u000a      }\u000a\u000a      if (allocate_minor_heap_arena(Caml_state->minor_heap_wsz) < 0) {\u000a        caml_fatal_error(\"Fatal error: No memory for minor heap arena\");\u000a      }\u000a    }\u000a\u000aThis function changes the global minor heaps reservation during a STW\u000aevent where each domain first deallocates its arena and then\u000areallocates it in the new reservation. The problem is that\u000a`free_minor_heap_arena` now changes the value of\u000a`Caml_state->minor_heap_wsz` to 0, so the re-allocation that follows\u000awill try to allocate a 0-word (in fact a 512-word due to the\u000apage-alignment normalization logic) arena.\u000a\u000aThis bug can only be encountered by calling\u000a`caml_update_minor_heap_max`, so it affects few programs.\u000a\u000aI see two approaches to fix it:\u000a\u000a1. we could remove the zeroing of `minor_heap_wsz`,\u000a   and instead use the previous check\u000a   `young_start == NULL && young_end == NULL`\u000a   to detect uninitialized arenas\u000a\u000a2. ... or we do assume that `free_minor_heap_arena` will unset\u000a   the arena size (which is reasonable), and we preserve the desired\u000a   size value within the `stw_resize_minor_heaps_reservation` function.\u000a\u000aThe present commit implements approach (2). I prefer to avoid a\u000asituation (as with (1)) where the `free` would leave the state only\u000apartially initialized, and it would be important for correctness.\u000a",
          "date" : "2025-07-23 17:31:13 +0200",
          "id" : "68a4b5649c7516ca311c7d4a8798d2ae90f397eb",
          "msg" : "domain.c: fix `stw_resize_minor_heaps_reservation`.",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "runtime/domain.c"
            }
          ]
        }
      ],
      "kind" : "git"
    }
  ],
  "culprits" : [
    {
      "absoluteUrl" : "https://ci.inria.fr/ocaml/user/gabriel.scherer",
      "fullName" : "gabriel.scherer"
    }
  ],
  "inProgress" : True,
  "nextBuild" : {
    "number" : 2906,
    "url" : "https://ci.inria.fr/ocaml/view/all/job/bootstrap/2906/"
  },
  "previousBuild" : {
    "number" : 2904,
    "url" : "https://ci.inria.fr/ocaml/view/all/job/bootstrap/2904/"
  }
}