)]}'
{
  "commit": "2d035b0df348d44b183b320bf3164a60665d4e01",
  "tree": "36064a66e280e891854b3dd40b403ce3e4d93128",
  "parents": [
    "a805dc402ac5b62bae9592e9ed8e44af0c3f34e0"
  ],
  "author": {
    "name": "Martin Fick",
    "email": "mfick@nvidia.com",
    "time": "Sat Apr 25 13:58:35 2026 -0700"
  },
  "committer": {
    "name": "Martin Fick",
    "email": "mfick@nvidia.com",
    "time": "Fri May 08 16:40:13 2026 -0700"
  },
  "message": "WorkQueue: Fix parked-task core-pool size races\n\nWhen a task is parked, WorkQueue temporarily increments corePoolSize so\na replacement worker can run. The parked slot must be decremented\nexactly once when that parked task is either unparked or cancelled.\nThis change ensures that when a completing thread unparks or cleans up a\nready or canceled task in updateParked(), it will not proceed to\npotentially start working on a queued task until the thread pool has\nbeen decremented, thus avoiding potentially temporarily running more\ntasks than allowed concurrently.\n\nAdd TaskParkerIT coverage for interrupting a task while it is being\nunparked, plus a small helper to interrupt task threads by name.\n\nChange-Id: I3f9bdb42b34f1ec79763f93b23b54812fe77f7fe\nRelease-Notes: Avoid running more WorkQueue tasks than allowed\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "95d6d5f6bfe71fb3eb326936e2707e5350dcc505",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/server/git/WorkQueue.java",
      "new_id": "49d0be090f2ac84d51ef2457a431ea6afad5a8c3",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/git/WorkQueue.java"
    },
    {
      "type": "modify",
      "old_id": "3b82ebe9b9ce5ea001d0f3c43739320b2668cca4",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/acceptance/server/util/TaskParkerIT.java",
      "new_id": "df63b69a8702792d810ca1565a4c5cec13151ed6",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/acceptance/server/util/TaskParkerIT.java"
    }
  ]
}
