)]}'
{
  "commit": "61ff7b3c2a9475eaf4bb0fea558e7a3e142fc5f8",
  "tree": "71764eb8d2f85ea5be896cecf5d391b747281a9e",
  "parents": [
    "28b86033edbc1ea85b117aa8e22dcb06831571dd"
  ],
  "author": {
    "name": "Lokbondo Kung",
    "email": "lokokung@google.com",
    "time": "Thu Feb 05 13:20:06 2026 -0800"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Feb 05 13:20:06 2026 -0800"
  },
  "message": "[dawn][wire] Make sure to release WGPUObjects on Server teardown.\n\n- The fuzzer found that if the server was deleted while an async\n  pipeline creation is in flight, the callback would end up being\n  called when the server\u0027s weak_ptr is already invalid and as a\n  result, skip calling the callback implementation altogether. This\n  results in the pipeline (if one was returned) being leaked.\n- This change passes a shared_ptr of the ProcTable to the callback\n  userdatas so that they can clean up any WGPUObjects that are\n  returned from the callbacks if the server is already gone.\n\nBug: 476162309\nChange-Id: Ie3bdb6f61a361952f7c7d32e44eb762c5f650f5e\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/289215\nAuto-Submit: Loko Kung \u003clokokung@google.com\u003e\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nCommit-Queue: Kai Ninomiya \u003ckainino@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "edded22b8e53194437e69410b14409d40f297f5b",
      "old_mode": 33188,
      "old_path": "generator/templates/dawn/wire/server/ServerBase.h",
      "new_id": "0f16f4e29fe9e9f59f92528993ba9a6af4c6dfb9",
      "new_mode": 33188,
      "new_path": "generator/templates/dawn/wire/server/ServerBase.h"
    },
    {
      "type": "modify",
      "old_id": "858afb2a4f8a227c39a3aebd1437d46df3454586",
      "old_mode": 33188,
      "old_path": "generator/templates/dawn/wire/server/ServerDoers.cpp",
      "new_id": "26cb32f8589815cad240328561ce0a3cd53a7e30",
      "new_mode": 33188,
      "new_path": "generator/templates/dawn/wire/server/ServerDoers.cpp"
    },
    {
      "type": "modify",
      "old_id": "5cf16815d7cb6046cb4ea18cf0310cccf3b4d81d",
      "old_mode": 33188,
      "old_path": "generator/templates/dawn/wire/server/WGPUTraits.h",
      "new_id": "1f51f8929a16e182d106eaf4942c02e6c7edc8d6",
      "new_mode": 33188,
      "new_path": "generator/templates/dawn/wire/server/WGPUTraits.h"
    },
    {
      "type": "modify",
      "old_id": "f0faed8fc38488033004d040d9ba2ca697cab243",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/Server.cpp",
      "new_id": "5f76c874a75e6a7c85a7031d417cd51428b3b7a9",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/Server.cpp"
    },
    {
      "type": "modify",
      "old_id": "6ded5678d4d0a641434d8fa91b3442cab6a9ddaa",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/Server.h",
      "new_id": "c94b4fc9611e738355f901c1eed028f81df14315",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/Server.h"
    },
    {
      "type": "modify",
      "old_id": "55c012f2edcbd0f30f50b148a1002c8e92758aa1",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ServerAdapter.cpp",
      "new_id": "15ec3888abeabe3ac09ffb3eadc25bbcb33fe303",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ServerAdapter.cpp"
    },
    {
      "type": "modify",
      "old_id": "9d209fa84ddee6ea2a26bb61cab2c2e5037f5179",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ServerBuffer.cpp",
      "new_id": "ba8e9e0c57c712b4a5b170a8e2a74d016a89d68d",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ServerBuffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "ef51d89c666f2a4d5be0f277e4de2642139d8234",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ServerDevice.cpp",
      "new_id": "beebcb1a9df7864ff88cd103ad3958a4e1957ada",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ServerDevice.cpp"
    },
    {
      "type": "modify",
      "old_id": "ac3f29ada1cf135e4ffd2531cf6824e2a6531f73",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ServerInstance.cpp",
      "new_id": "b92b8e74fd857e5a83633707780d8a01d59c53b1",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ServerInstance.cpp"
    },
    {
      "type": "modify",
      "old_id": "a1d831967c8d0469cb219c9ea918f9e2510b7002",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ServerProgrammableEncoder.cpp",
      "new_id": "af8c6b801c0927716c1675eed0334594897ed826",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ServerProgrammableEncoder.cpp"
    },
    {
      "type": "modify",
      "old_id": "bcb8eef3346161c532523ecad0f06f75c4e56ca6",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ServerQueue.cpp",
      "new_id": "ebe37b796ab7d3f74910998ce0d4935c731c657e",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ServerQueue.cpp"
    },
    {
      "type": "modify",
      "old_id": "35439fbf198c3f551bcb2f5722ed65a3344fcc70",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ServerShaderModule.cpp",
      "new_id": "8afa631ea03b67d4f7330cd0c8a04d3a892493fd",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ServerShaderModule.cpp"
    },
    {
      "type": "modify",
      "old_id": "081fb08764f496fc135a8323ded5b2654ec1d28a",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/server/ServerSurface.cpp",
      "new_id": "b9813584e21581501c599fb2d57a3ecbdd902f7b",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/server/ServerSurface.cpp"
    }
  ]
}
