{
  "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "com.cloudbees.jenkins.GitHubPushCause",
          "shortDescription" : "Started by GitHub push by OlivierNicole"
        }
      ]
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/trunk" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 3027,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "25b6cc979dee394b5fb7e1eac24c2ad33317907b",
            "branch" : [
              {
                "SHA1" : "25b6cc979dee394b5fb7e1eac24c2ad33317907b",
                "name" : "origin/trunk"
              }
            ]
          },
          "revision" : {
            "SHA1" : "25b6cc979dee394b5fb7e1eac24c2ad33317907b",
            "branch" : [
              {
                "SHA1" : "25b6cc979dee394b5fb7e1eac24c2ad33317907b",
                "name" : "origin/trunk"
              }
            ]
          }
        },
        "refs/remotes/origin/trunk" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2398,
          "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" : 2925,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "8899c05cfc9027e74dfe88c71cc78bac5102e771",
            "branch" : [
              {
                "SHA1" : "8899c05cfc9027e74dfe88c71cc78bac5102e771",
                "name" : "origin/4.14"
              }
            ]
          },
          "revision" : {
            "SHA1" : "8899c05cfc9027e74dfe88c71cc78bac5102e771",
            "branch" : [
              {
                "SHA1" : "8899c05cfc9027e74dfe88c71cc78bac5102e771",
                "name" : "origin/4.14"
              }
            ]
          }
        },
        "origin/5.4" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 3022,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "33f2c1acc1549b2d412564707621f5ac6fac1df3",
            "branch" : [
              {
                "SHA1" : "33f2c1acc1549b2d412564707621f5ac6fac1df3",
                "name" : "origin/5.4"
              }
            ]
          },
          "revision" : {
            "SHA1" : "33f2c1acc1549b2d412564707621f5ac6fac1df3",
            "branch" : [
              {
                "SHA1" : "33f2c1acc1549b2d412564707621f5ac6fac1df3",
                "name" : "origin/5.4"
              }
            ]
          }
        },
        "origin/5.3" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 3003,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "489ecba22f1b1b05b7569f8c6733e0ef14f0e9fc",
            "branch" : [
              {
                "SHA1" : "489ecba22f1b1b05b7569f8c6733e0ef14f0e9fc",
                "name" : "origin/5.3"
              }
            ]
          },
          "revision" : {
            "SHA1" : "489ecba22f1b1b05b7569f8c6733e0ef14f0e9fc",
            "branch" : [
              {
                "SHA1" : "489ecba22f1b1b05b7569f8c6733e0ef14f0e9fc",
                "name" : "origin/5.3"
              }
            ]
          }
        },
        "origin/5.2" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2885,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "da1cc7acd855ae1aaf309f2a11f0f91a953a4377",
            "branch" : [
              {
                "SHA1" : "da1cc7acd855ae1aaf309f2a11f0f91a953a4377",
                "name" : "origin/5.2"
              }
            ]
          },
          "revision" : {
            "SHA1" : "da1cc7acd855ae1aaf309f2a11f0f91a953a4377",
            "branch" : [
              {
                "SHA1" : "da1cc7acd855ae1aaf309f2a11f0f91a953a4377",
                "name" : "origin/5.2"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "25b6cc979dee394b5fb7e1eac24c2ad33317907b",
        "branch" : [
          {
            "SHA1" : "25b6cc979dee394b5fb7e1eac24c2ad33317907b",
            "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" : False,
  "description" : None,
  "displayName" : "#3027",
  "duration" : 189380,
  "estimatedDuration" : 192242,
  "executor" : None,
  "fullDisplayName" : "step-by-step-build #3027",
  "id" : "3027",
  "keepLog" : False,
  "number" : 3027,
  "queueId" : 25144,
  "result" : "SUCCESS",
  "timestamp" : 1758638908180,
  "url" : "https://ci.inria.fr/ocaml/view/all/job/step-by-step-build/3027/",
  "changeSets" : [
    {
      "_class" : "hudson.plugins.git.GitChangeSetList",
      "items" : [
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "Changes",
            "runtime/tsan.c"
          ],
          "commitId" : "25b6cc979dee394b5fb7e1eac24c2ad33317907b",
          "timestamp" : 1758638894000,
          "author" : {
            "absoluteUrl" : "https://ci.inria.fr/ocaml/user/noreply",
            "fullName" : "noreply"
          },
          "authorEmail" : "noreply@github.com",
          "comment" : "Fix TSan shadow stack popping on some C stubs (#14213)\u000a\u000aUntil now, when an exception was raised from C and TSan was enabled, the\u000aruntime would unwind the (real) stack and pop on TSan's shadow stack at\u000aevery frame, until the stack pointer was at a higher address than the\u000ac_stack_link. This is incorrect: the correct condition is to stop when\u000athe stack pointer is no longer between the c_stack_link and the stack\u000apointer's value before unwinding. This is because unwinding beyond the\u000ac_stack_link means going back to an OCaml stack, which is on the heap,\u000aand may be stored at an arbitrary address, higher or lower than the C\u000astack.\u000a\u000aThis change also makes the code clearer by using a for loop and\u000aimproving comments.\u000a\u000aCo-authored-by: Gabriel Scherer <gabriel.scherer@gmail.com>\u000a",
          "date" : "2025-09-23 16:48:14 +0200",
          "id" : "25b6cc979dee394b5fb7e1eac24c2ad33317907b",
          "msg" : "Fix TSan shadow stack popping on some C stubs (#14213)",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "Changes"
            },
            {
              "editType" : "edit",
              "file" : "runtime/tsan.c"
            }
          ]
        }
      ],
      "kind" : "git"
    }
  ],
  "culprits" : [
    {
      "absoluteUrl" : "https://ci.inria.fr/ocaml/user/noreply",
      "fullName" : "noreply"
    }
  ],
  "inProgress" : False,
  "nextBuild" : {
    "number" : 3028,
    "url" : "https://ci.inria.fr/ocaml/view/all/job/step-by-step-build/3028/"
  },
  "previousBuild" : {
    "number" : 3026,
    "url" : "https://ci.inria.fr/ocaml/view/all/job/step-by-step-build/3026/"
  }
}