)]}'
{
  "commit": "09924273efc7050a2e342cd89b823a619ca073f8",
  "tree": "2fd12ed348d0fca072da7eaa4a5c0668ab77fd56",
  "parents": [
    "422b71672ade782b67f9cf0c481ceefef7b9a841"
  ],
  "author": {
    "name": "mschaller",
    "email": "mschaller@google.com",
    "time": "Tue Apr 07 20:50:28 2020 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Apr 07 20:51:46 2020 -0700"
  },
  "message": "Support publishing FailureDetail messages for crashes\n\nAdds a startup flag, \"--failure_detail_out\", whose default value is\n\"${OUTPUT_BASE}/failure_detail.rawproto\".\n\nAdds a class similar to the existing class which supports writing an exit\ncode file to the output base. This new class supports writing a serialized\nFailureDetail protobuf message to the \"--failure_details_out\" path.\n\nWhen Bazel handles a crash via BugReport.handleCrash, the new class is\nused to write a FailureDetail message describing the crash.\n\nAdds a Crash category message type to failure_details.proto. Along with\na Code-style subcategory enum field, this message type specifies a\nrepeated Throwable field to describe the java.lang.Throwable responsible\nfor the crash, if any, and its chain of causes. This chain\u0027s length is\nlimited to a small number: 5, for now.\n\nThe number of stack trace elements described is limited to 1000 per\nThrowable, for now.\n\nThere are still ways for Bazel to fail without reporting FailureDetail\nvia gRPC or through the BugReport.handleCrash methods, notably during\nstartup. Future changes will add support for emitting FailureDetail in\nmore places.\n\nRELNOTES: None.\nPiperOrigin-RevId: 305398847\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "035aa2ac6615bb44ec818aaae6b6b98c0b314b36",
      "old_mode": 33261,
      "old_path": "scripts/bootstrap/compile.sh",
      "new_id": "c9be9b451a5f37ba2d74cf839673438e1a39db47",
      "new_mode": 33261,
      "new_path": "scripts/bootstrap/compile.sh"
    },
    {
      "type": "modify",
      "old_id": "a934d4d141b8abdbc5cb5bbb35222a29972c16c3",
      "old_mode": 33188,
      "old_path": "src/main/cpp/blaze.cc",
      "new_id": "f676511fc18ae821064dea2edc8e5b6591df82bb",
      "new_mode": 33188,
      "new_path": "src/main/cpp/blaze.cc"
    },
    {
      "type": "modify",
      "old_id": "eb12211dd5e63ec4d24cacb3ba2deff94d4738ad",
      "old_mode": 33188,
      "old_path": "src/main/cpp/startup_options.cc",
      "new_id": "653bae3cafb56d385d41a3ed68f9d6dc9a66defd",
      "new_mode": 33188,
      "new_path": "src/main/cpp/startup_options.cc"
    },
    {
      "type": "modify",
      "old_id": "efe99e88875241df1e9e9abc715cde123b54c819",
      "old_mode": 33188,
      "old_path": "src/main/cpp/startup_options.h",
      "new_id": "b10b2fb8f8388f2c757450817a622177b471c37b",
      "new_mode": 33188,
      "new_path": "src/main/cpp/startup_options.h"
    },
    {
      "type": "modify",
      "old_id": "fb9d3743509b07291e46eaa1394c5230edc848f5",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/BUILD",
      "new_id": "ff1b09a84296e8eb31b622d55f5605aa54b1afc7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/BUILD"
    },
    {
      "type": "modify",
      "old_id": "f79a5547a0ee29004a091937c3b3bbd4e34f7b47",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bugreport/BugReport.java",
      "new_id": "cb990377213a87b679f71204e4a4fa7600cb1582",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bugreport/BugReport.java"
    },
    {
      "type": "modify",
      "old_id": "a4fb42d8085b83d010a1f4448597ddcf475a7bbf",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java",
      "new_id": "0b5792427bf0c8cc5cfcd9af47782f8efdcb3b33",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java"
    },
    {
      "type": "modify",
      "old_id": "f5451e19df0dba0a236e2f7b74d2ffd637d5ff49",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeServerStartupOptions.java",
      "new_id": "c93805ae872431d3a67a48d613bfa3c5ce72c518",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeServerStartupOptions.java"
    },
    {
      "type": "modify",
      "old_id": "a613062bb77c1b53128f146df52359efcb8e95da",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/util/BUILD",
      "new_id": "96606af49724bd97fddd28a822946f1f67abfa1b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/util/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e5da16325f2fa4e86b6dd30f78f2896a32a4889",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/util/CrashFailureDetails.java"
    },
    {
      "type": "modify",
      "old_id": "d94cf864190f45ca7cf2806d072d580bfa4de8f3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/util/CustomExitCodePublisher.java",
      "new_id": "d349265d1752c420e6317d578f907603a995a156",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/util/CustomExitCodePublisher.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "555d7209c4bad8ee4d965c5dfd308d37be0d8bc6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/util/CustomFailureDetailPublisher.java"
    },
    {
      "type": "modify",
      "old_id": "1d3e3cb5455c3c15bf73eaf1f184fa78522a6e4e",
      "old_mode": 33188,
      "old_path": "src/main/protobuf/failure_details.proto",
      "new_id": "5aae6b0fd2eb6c68f1091b06ae2a359379955b44",
      "new_mode": 33188,
      "new_path": "src/main/protobuf/failure_details.proto"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b36bb44670866ba40e58f2cbf5898b4f829e7299",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/bugreport/BugReportTest.java"
    },
    {
      "type": "modify",
      "old_id": "209739ce2bf0e54130b485f478a040912b38768d",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/util/BUILD",
      "new_id": "438264baca05695ea8a00817e65e5defe3ab24b3",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/util/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7118fcd27ab71b1c9a829fdf8288de1eae28f9d6",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/util/CrashFailureDetailsTest.java"
    }
  ]
}
