{
  "_class" : "org.jenkinsci.plugins.workflow.job.WorkflowRun",
  "actions" : [
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "REPO_URL",
          "value" : "https://github.com/edwintorok/ocaml.git"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "private/edvint/really-ubsan"
        }
      ]
    },
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.model.Cause$UserIdCause",
          "shortDescription" : "Started by user anonymous",
          "userId" : None,
          "userName" : "anonymous"
        }
      ]
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/private/edvint/sanitizers-all" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 5,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "bc2d1f1a322215ff01a99a573158f2558f017ab0",
            "branch" : [
              {
                "SHA1" : "bc2d1f1a322215ff01a99a573158f2558f017ab0",
                "name" : "refs/remotes/origin/private/edvint/sanitizers-all"
              }
            ]
          },
          "revision" : {
            "SHA1" : "bc2d1f1a322215ff01a99a573158f2558f017ab0",
            "branch" : [
              {
                "SHA1" : "bc2d1f1a322215ff01a99a573158f2558f017ab0",
                "name" : "refs/remotes/origin/private/edvint/sanitizers-all"
              }
            ]
          }
        },
        "refs/remotes/origin/private/edvint/really-ubsan" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 7,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "7c081549379671b23fcd1089036f87c59a043505",
            "branch" : [
              {
                "SHA1" : "7c081549379671b23fcd1089036f87c59a043505",
                "name" : "refs/remotes/origin/private/edvint/really-ubsan"
              }
            ]
          },
          "revision" : {
            "SHA1" : "7c081549379671b23fcd1089036f87c59a043505",
            "branch" : [
              {
                "SHA1" : "7c081549379671b23fcd1089036f87c59a043505",
                "name" : "refs/remotes/origin/private/edvint/really-ubsan"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "7c081549379671b23fcd1089036f87c59a043505",
        "branch" : [
          {
            "SHA1" : "7c081549379671b23fcd1089036f87c59a043505",
            "name" : "refs/remotes/origin/private/edvint/really-ubsan"
          }
        ]
      },
      "remoteUrls" : [
        "${REPO_URL}"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.workflow.libs.LibrariesAction"
    },
    {
      
    },
    {
      "_class" : "jenkins.model.InterruptedBuildAction"
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_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" : "#7",
  "duration" : 113511,
  "estimatedDuration" : 1232421,
  "executor" : None,
  "fullDisplayName" : "precheck-sanitizers #7",
  "id" : "7",
  "keepLog" : False,
  "number" : 7,
  "queueId" : 2928,
  "result" : "ABORTED",
  "timestamp" : 1721400950641,
  "url" : "https://ci.inria.fr/ocaml/view/all/job/precheck-sanitizers/7/",
  "changeSets" : [
    {
      "_class" : "hudson.plugins.git.GitChangeSetList",
      "items" : [
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "tools/ci/inria/sanitizers/script"
          ],
          "commitId" : "1cb36665a25f7427a198a51bfc48927a52a4d5a8",
          "timestamp" : 1721400687000,
          "author" : {
            "absoluteUrl" : "https://ci.inria.fr/ocaml/user/edwin.torok",
            "fullName" : "edwin.torok"
          },
          "authorEmail" : "edwin.torok@cloud.com",
          "comment" : "Sanitizer(UBSAN): really enable UBSAN\u000a\u000aThe clang-14 docs are not clear about this, but the latest docs say:\u000a> -fsanitize-trap= and -fsanitize-recover= are a no-op in the absence of a -fsanitize= option. There is no unused command line option warning.\u000a\u000aAvoid this trap and specify `-fsanitize=$ubsan` too.\u000a\u000aSigned-off-by: Edwin Török <edwin.torok@cloud.com>\u000a",
          "date" : "2024-07-19 15:51:27 +0100",
          "id" : "1cb36665a25f7427a198a51bfc48927a52a4d5a8",
          "msg" : "Sanitizer(UBSAN): really enable UBSAN",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "tools/ci/inria/sanitizers/script"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "tools/ci/inria/sanitizers/script"
          ],
          "commitId" : "0a88f1e3d0f520dc2f83125bb83add79f53d2691",
          "timestamp" : 1721400698000,
          "author" : {
            "absoluteUrl" : "https://ci.inria.fr/ocaml/user/edwin.torok",
            "fullName" : "edwin.torok"
          },
          "authorEmail" : "edwin.torok@cloud.com",
          "comment" : "Sanitizers(UBSAN): fix linker warning\u000a\u000aApparently >-O0 needs to be supplied when linking too:\u000a```\u000aclang: warning: the object size sanitizer has no effect at -O0, but is explicitly enabled: -fsanitize=bool,builtin,bounds,enum,nonnull-attribute,nullability,object-size,pointer-overflow,returns-nonnull-attribute,shift-exponent,unreachable [-Winvalid-command-line-argument]\u000a```\u000a\u000aSigned-off-by: Edwin Török <edwin.torok@cloud.com>\u000a",
          "date" : "2024-07-19 15:51:38 +0100",
          "id" : "0a88f1e3d0f520dc2f83125bb83add79f53d2691",
          "msg" : "Sanitizers(UBSAN): fix linker warning",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "tools/ci/inria/sanitizers/script"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "tools/ci/inria/sanitizers/script"
          ],
          "commitId" : "c3b34648ea3a058462c74e550a3b7822a872a497",
          "timestamp" : 1721400701000,
          "author" : {
            "absoluteUrl" : "https://ci.inria.fr/ocaml/user/edwin.torok",
            "fullName" : "edwin.torok"
          },
          "authorEmail" : "edwin.torok@cloud.com",
          "comment" : "Sanitizers: move flag definitions\u000a\u000aMove compiler flag definitions to shell variables.\u000aThis will enable testing them.\u000a\u000aNo functional change yet.\u000a\u000aSigned-off-by: Edwin Török <edwin.torok@cloud.com>\u000a",
          "date" : "2024-07-19 15:51:41 +0100",
          "id" : "c3b34648ea3a058462c74e550a3b7822a872a497",
          "msg" : "Sanitizers: move flag definitions",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "tools/ci/inria/sanitizers/script"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "tools/ci/inria/sanitizers/script"
          ],
          "commitId" : "52d93a5b8446671eac8c834ea0f45219521a5937",
          "timestamp" : 1721400879000,
          "author" : {
            "absoluteUrl" : "https://ci.inria.fr/ocaml/user/edwin.torok",
            "fullName" : "edwin.torok"
          },
          "authorEmail" : "edwin.torok@cloud.com",
          "comment" : "Sanitizers: add a test that ASAN/UBSAN work\u000a\u000aCompile 2 small test programs, and check expected output.\u000aThe test programs are deleted on success.\u000a\u000aSigned-off-by: Edwin Török <edwin.torok@cloud.com>\u000a",
          "date" : "2024-07-19 15:54:39 +0100",
          "id" : "52d93a5b8446671eac8c834ea0f45219521a5937",
          "msg" : "Sanitizers: add a test that ASAN/UBSAN work",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "tools/ci/inria/sanitizers/script"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "tools/ci/inria/sanitizers/script"
          ],
          "commitId" : "9f7aad844b94bf247c7a906c683d942d3ca0d5ad",
          "timestamp" : 1721400895000,
          "author" : {
            "absoluteUrl" : "https://ci.inria.fr/ocaml/user/edwin.torok",
            "fullName" : "edwin.torok"
          },
          "authorEmail" : "edwin.torok@cloud.com",
          "comment" : "Sanitizer(UBSAN): switch to printing instead of trap\u000a\u000aStill stop on first error, but instead of dumping core print a message,\u000aand stacktrace, like ASAN.\u000a\u000aThis may be more convenient when used in a CI than a coredump.\u000a\u000aSigned-off-by: Edwin Török <edwin.torok@cloud.com>\u000a",
          "date" : "2024-07-19 15:54:55 +0100",
          "id" : "9f7aad844b94bf247c7a906c683d942d3ca0d5ad",
          "msg" : "Sanitizer(UBSAN): switch to printing instead of trap",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "tools/ci/inria/sanitizers/script"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "tools/ci/inria/sanitizers/script"
          ],
          "commitId" : "9addfada6693b6dcb30c5139eb4dddc41983c8d7",
          "timestamp" : 1721400895000,
          "author" : {
            "absoluteUrl" : "https://ci.inria.fr/ocaml/user/edwin.torok",
            "fullName" : "edwin.torok"
          },
          "authorEmail" : "edwin.torok@cloud.com",
          "comment" : "Sanitizers: add -g flag\u000a\u000aFor better stacktraces.\u000a\u000aSigned-off-by: Edwin Török <edwin.torok@cloud.com>\u000a",
          "date" : "2024-07-19 15:54:55 +0100",
          "id" : "9addfada6693b6dcb30c5139eb4dddc41983c8d7",
          "msg" : "Sanitizers: add -g flag",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "tools/ci/inria/sanitizers/script"
            }
          ]
        },
        {
          "_class" : "hudson.plugins.git.GitChangeSet",
          "affectedPaths" : [
            "tools/ci/inria/sanitizers/script"
          ],
          "commitId" : "7c081549379671b23fcd1089036f87c59a043505",
          "timestamp" : 1721400895000,
          "author" : {
            "absoluteUrl" : "https://ci.inria.fr/ocaml/user/edwin.torok",
            "fullName" : "edwin.torok"
          },
          "authorEmail" : "edwin.torok@cloud.com",
          "comment" : "Sanitizers: future proof by using -Og instead of -o1\u000a\u000aThis is currently equivalent to -O1 on clang, but may improve debuggability in the future compared to -O1.\u000a\u000aGCC already disables certain optimizations at -Og, and recommends it when using the sanitizers:\u000a```\u000aTo get more accurate stack traces, it is possible to use options such as -O0, -O1, or -Og (which, for instance, prevent  most  function  inlining)\u000a```\u000a\u000a(there are also other flag recommendations, but I think they are only relevant if you want to use -O2 or higher,\u000a they wouldn't be active at -O1/-Og)\u000a\u000aAlso don't use -O0. Even for pure debugging, the manual recommends -Og:\u000a```\u000aIt is a better choice than -O0 for producing debuggable code because some compiler passes that collect debug information are disabled at -O0\u000a```\u000a\u000aSigned-off-by: Edwin Török <edwin.torok@cloud.com>\u000a",
          "date" : "2024-07-19 15:54:55 +0100",
          "id" : "7c081549379671b23fcd1089036f87c59a043505",
          "msg" : "Sanitizers: future proof by using -Og instead of -o1",
          "paths" : [
            {
              "editType" : "edit",
              "file" : "tools/ci/inria/sanitizers/script"
            }
          ]
        }
      ],
      "kind" : "git"
    }
  ],
  "culprits" : [
    {
      "absoluteUrl" : "https://ci.inria.fr/ocaml/user/edwin.torok",
      "fullName" : "edwin.torok"
    }
  ],
  "inProgress" : False,
  "nextBuild" : {
    "number" : 8,
    "url" : "https://ci.inria.fr/ocaml/view/all/job/precheck-sanitizers/8/"
  },
  "previousBuild" : None
}