)]}'
{
  "commit": "b64c19576c4e39e125cae091201d0834135cf065",
  "tree": "37396181dbd75a8e858dce7ddffd7d36e5170dfa",
  "parents": [
    "0c00d0300128d2b3e202f64a01015ae8cf761290"
  ],
  "author": {
    "name": "twerth CA",
    "email": "twerth@google.com",
    "time": "Thu Aug 27 06:12:52 2026 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Aug 27 06:14:08 2026 -0700"
  },
  "message": "Fix infinite hang on Windows compilation actions in WaitableProcess.\n\nOccasionally on Windows, Bazel compilation actions (such as MSVC cl.exe) get stuck in an infinite wait in the Bazel server even after the compiler process has finished. When cl.exe runs, it can launch background child processes such as Microsoft\u0027s telemetry uploader (vctip.exe), which can enter an unkillable zombie state inside the Windows Job Object. Because Bazel previously waited with an INFINITE timeout for JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO after calling TerminateJobObject, any stuck child process caused the entire build server to hang forever.\n\nReplace INFINITE with a finite 5-second timeout (kJobCompletionTimeoutMsec) when calling GetQueuedCompletionStatus in WaitableProcess::WaitFor after the primary process has terminated and TerminateJobObject has been invoked. This allows Bazel to proceed after a short grace period even if background subprocesses like vctip.exe refuse to terminate. Fixes https://github.com/bazelbuild/bazel/issues/15094.\n\nPiperOrigin-RevId: 971912626\nChange-Id: I8e289d376ee7ac4bf61de7abd7a32f64893eb85d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "252a3e3f1975e79468c29ba620eca5ed56a0219d",
      "old_mode": 33188,
      "old_path": "src/main/native/windows/process.cc",
      "new_id": "7a68aa8b9a934b7f40d1b064b6d185cf5884a442",
      "new_mode": 33188,
      "new_path": "src/main/native/windows/process.cc"
    }
  ]
}
