)]}'
{
  "commit": "656a0bab1e025ff3c27d595284a4bf1c5a8d8028",
  "tree": "2307d1a23794923db1ab44e59f3e600abf380061",
  "parents": [
    "26e7280deecc11172c1b16637d513c2d0d242c09"
  ],
  "author": {
    "name": "Philipp Wollermann",
    "email": "philwo@google.com",
    "time": "Mon Mar 26 09:06:29 2018 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-piper@google.com",
    "time": "Mon Mar 26 09:08:26 2018 -0700"
  },
  "message": "Big round of sandbox fixes / performance improvements.\n\n- The number of stat() syscalls in the SymlinkedSandboxedSpawn was way too high. Do less, feel better.\n\n- When using --experimental_sandbox_base, ensure that symlinks in the path are resolved. Before this, you had to check whether on your system /dev/shm is a symlink to /run/shm and then use that instead. Now it no longer matters, as symlinks are resolved.\n\n- Remove an unnecessary directory creation from each sandboxed invocation. Turns out that the \"tmpdir\" that we created was no longer used after some changes to Bazel\u0027s TMPDIR handling.\n\n- Use simpler sandbox paths, by using the unique ID for each Spawn provided by SpawnExecutionPolicy instead of a randomly generated temp folder name. This also saves a round-trip from our VFS to NIO and back. Clean up the sandbox base before each build to ensure that the unique IDs are actually unique. ;)\n\n- Use Java 8\u0027s Process#isAlive to check whether a process is alive instead of trying to get the exitcode and catching an exception.\n\nCloses #4913.\n\nPiperOrigin-RevId: 190472170\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "df96bb72f66dbbfb37e3a56b6ab96b2cfba0a597",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java",
      "new_id": "63bd27a57d5472cbca16cc52f4d48db132bd9b01",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java"
    },
    {
      "type": "modify",
      "old_id": "f8f58308f085d247e857f4b36407257a8d83b3a3",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/runtime/CacheFileDigestsModule.java",
      "new_id": "c56a0fd8bfcb6ec1c0060e225ee81d85f67256fc",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/runtime/CacheFileDigestsModule.java"
    },
    {
      "type": "modify",
      "old_id": "33b21209da80e5ecf7fba5e1c80d9300aa4e4441",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/AbstractSandboxSpawnRunner.java",
      "new_id": "9fee6544ddb133d96d6fe10ad340d1b74bbf4f8c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/AbstractSandboxSpawnRunner.java"
    },
    {
      "type": "modify",
      "old_id": "1060034ccca39224f9030027480d53e6f9035422",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java",
      "new_id": "d20eec70b155447166535abb6c5dff393aeac7e5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedSpawnRunner.java"
    },
    {
      "type": "modify",
      "old_id": "fc8a3c3fad6586843526e10ab784a03a85d17171",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java",
      "new_id": "a4c05ea5a716f69fcf2f9ed6e6a804668e26545c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java"
    },
    {
      "type": "modify",
      "old_id": "e4c5ba65246a0c86be0a66a393ce4d8bc770c877",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java",
      "new_id": "0d6c7e1410333adda5d083e1fb21c67fcfddcacd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedSpawnRunner.java"
    },
    {
      "type": "modify",
      "old_id": "bbebefa81d0aea9d46d2f8cc599840a5ba065582",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java",
      "new_id": "1993fb8c20ed0903ee1481b159840a9a59ab8bcc",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java"
    },
    {
      "type": "modify",
      "old_id": "fdc4abfdd79e759b1b743170640fd4c9b25b984b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java",
      "new_id": "e79b2abcd70a7741d225b02e7df0110bb9320bb6",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedSpawnRunner.java"
    },
    {
      "type": "modify",
      "old_id": "83c279a7265e381aad6951b4f3ed68859f35f3c0",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java",
      "new_id": "096f564ad86b9e06038c08405cc92ff8519e4e27",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java"
    },
    {
      "type": "modify",
      "old_id": "3065393a9625afec6bf06a4f6b70210f71ba9c75",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/SandboxModule.java",
      "new_id": "a8fb190e48af619c538e0fdf734473231e69e649",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/SandboxModule.java"
    },
    {
      "type": "modify",
      "old_id": "e6408dc3ccecdc4b0785c13979ceb0637346f2fb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/SandboxedSpawn.java",
      "new_id": "aba4454334f71cf176df6502c8a9749567bc530f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/SandboxedSpawn.java"
    },
    {
      "type": "modify",
      "old_id": "f4d41e38a370de760f83679b721ee8b6ff9c7c23",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/sandbox/SymlinkedSandboxedSpawn.java",
      "new_id": "d2806db1a1bdb3202322ea91726d3abf31b8242d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/sandbox/SymlinkedSandboxedSpawn.java"
    },
    {
      "type": "modify",
      "old_id": "7647d17dd3760823706eeae49d0f5e5afa3c1c47",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java",
      "new_id": "bfc867d991a3bf78b880732e23f829bf0bd77b01",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/shell/JavaSubprocessFactory.java"
    },
    {
      "type": "modify",
      "old_id": "fedd037d1c5ac64cc83516605c8e252ca46a2640",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/worker/SandboxedWorker.java",
      "new_id": "a25ce97c0ceafb5fdbc48f3becae5f9e8b637623",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/worker/SandboxedWorker.java"
    },
    {
      "type": "modify",
      "old_id": "55705f44856be2720c30e6588af07470a309acca",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/worker/Worker.java",
      "new_id": "1cbd077e815120382cfcf882e251bf86ebcb5a3d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/worker/Worker.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4cf02ac5b7d84e6eafddb80a3305a8788eabc0b4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/worker/WorkerExecRoot.java"
    },
    {
      "type": "modify",
      "old_id": "6f75fcf29dd4fb0a216b7efcb4cbcfe485df9103",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java",
      "new_id": "871a3a0c64d055cb65405a18d43deca840686c4e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/worker/WorkerFactory.java"
    },
    {
      "type": "modify",
      "old_id": "4641b5b710e016a54825bd9b5296a727b95bd7bb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java",
      "new_id": "4211419531a755a06b20c16373859a2ae52114df",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/worker/WorkerKey.java"
    },
    {
      "type": "modify",
      "old_id": "1be61e1f77943f415f7f8da144ba7d8709ab24e7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java",
      "new_id": "a615cf76cd7f40bb682bba2892af589f9c392161",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnRunner.java"
    },
    {
      "type": "modify",
      "old_id": "2302fc7c1e852554d3da38b64a5153576eff3da8",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java",
      "new_id": "013dbe226a0793270c924f921fb0bd06ad43bd4a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java"
    },
    {
      "type": "modify",
      "old_id": "a92cc32a39aad6aab6708762fe0ea2463ef73227",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/BUILD",
      "new_id": "3f55bd0252580e48582d28631db357ae2d732bb5",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/BUILD"
    },
    {
      "type": "modify",
      "old_id": "39f2227af55aec2e8518c5d5360e313fadf60637",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/sandbox/SandboxTestCase.java",
      "new_id": "8489c7d9142526959f1fd5f9229a36fb922ba59c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/sandbox/SandboxTestCase.java"
    },
    {
      "type": "modify",
      "old_id": "5e24deea4a95607a6ed0af9e5a81c7ab58272fe0",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/sandbox/SymlinkedSandboxedSpawnTest.java",
      "new_id": "89fd5eecff90d8bef7a370bd27a7539dabb2df88",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/sandbox/SymlinkedSandboxedSpawnTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b7758e66a5ced443ec55549676637a9ff13d202a",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/worker/WorkerExecRootTest.java"
    },
    {
      "type": "modify",
      "old_id": "27c0d4af1fd3a8c4d82a10252ab37ee852a88914",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/worker/WorkerFactoryTest.java",
      "new_id": "0552cb8c5ac2d621a5f35ca555b422da3033bce1",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/worker/WorkerFactoryTest.java"
    }
  ]
}
