)]}'
{
  "commit": "356ffc3653e4e213c51f9c23f9c0996d159a50fc",
  "tree": "87044b13b30b877e648021093fe9656fa1bf2135",
  "parents": [
    "37ad7ce16bbcd6bca746a6abb0e6f57fb63e9124"
  ],
  "author": {
    "name": "Marcin Czech",
    "email": "maczech@gmail.com",
    "time": "Fri Feb 02 09:33:03 2024 +0100"
  },
  "committer": {
    "name": "Marcin Czech",
    "email": "maczech@gmail.com",
    "time": "Mon Feb 26 09:49:20 2024 +0100"
  },
  "message": "Avoid duplicate indexing tasks for the same id\n\nIndexing tasks check if all necessary data is present on the node\nby comparing the event timestamp and the event target sha1 with the\nlocal repository sha1. For very active repositories, some of the\nindexing tasks never pass this check because:\n\n* During the retry backoff, the target branch of the change was\nupdated to a newer sha1\n* The consumed event is pointing to an outdated `/meta`\nNoteDb version.\n\nThis means that we can end up with multiple indexing tasks trying to\nreindex the same change, some of them except the last one will fail\nafter the maximum number of retries.\n\nTo avoid this situation, make sure that:\n\n* There is only one pending indexing task trying to index a change.\n* If any indexing task successfully indexed a change, the previous\nindexing task pending for that change can be discarded.\n\nBug: Issue 320542020\nChange-Id: I0117676ed015209a6b39f05e296adf6caf8b4485\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b3fb27ca47b48614046a6e0a8391611f81775be1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java",
      "new_id": "15f7c13f2f1d0537c648ed4a27bfed525da7d9bd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java"
    },
    {
      "type": "modify",
      "old_id": "c4906a9a89321626cd6b0c5d5d2f67bdfab14c2c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java",
      "new_id": "d05405fe4774e873fd698e0eede5d0794ecdf3d5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexGroupHandler.java"
    },
    {
      "type": "modify",
      "old_id": "3787a807fc2208ceae639bb209607c8de9ca4390",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java",
      "new_id": "2054f10910319ff556aa1740744dc0eae976bada",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexProjectHandler.java"
    },
    {
      "type": "modify",
      "old_id": "5c64431aaf85b6d7ec93400fa906870c7cefa9b2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexingHandlerWithRetries.java",
      "new_id": "f3d4e702fc69a168c9029cdb00092b46594bd54f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexingHandlerWithRetries.java"
    }
  ]
}
