)]}'
{
  "log": [
    {
      "commit": "cbf22e4e2262cc4dc6f89b2bef232ce355e514ef",
      "tree": "846b30f416e7eb410952a88dcad1396d525c5426",
      "parents": [
        "32429daa5a964389acf75a2fcd1f81dfed624ef0"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Mar 11 21:57:10 2026 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Mar 11 14:12:38 2026 -0700"
      },
      "message": "Fix error prone BoxedPrimitiveEquality report\n\nChange 517822 [1] caused error prone to be run also for the healthcheck\nplugin. Truthfully, I looked into the commit as much as I could but\ndidn\u0027t come up with a clear explanation as to why that is.\n\nAddress the error prone issue to enable compiling the plugin again.\n\n[1] https://gerrit-review.googlesource.com/c/gerrit/+/517822\n\nChange-Id: If0e8edd23fa2321b3fb46271b15a6739a6602ab5\n"
    },
    {
      "commit": "32429daa5a964389acf75a2fcd1f81dfed624ef0",
      "tree": "af9858a8d3c656e919826151817bef9727f159c1",
      "parents": [
        "54e95fb50673a540fff2e5dc3a969d7ddd89f5b3"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 17 08:28:37 2025 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 17 00:56:38 2025 -0800"
      },
      "message": "Show the health check result in HealthCheckFailedException\n\nProvide the output of the check results when rendering\nthe HealthCheckFailedException object in logs.\n\nChange-Id: I5b1ef87ed36c3c709b70006ec0ea52627c2b037d\n"
    },
    {
      "commit": "54e95fb50673a540fff2e5dc3a969d7ddd89f5b3",
      "tree": "e153b51fb3b68055d0e67f347c2101e7513e924d",
      "parents": [
        "b5ebf894a8b4de0f355d180fdff853d564e60f27"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 17 08:56:12 2025 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 17 08:56:12 2025 +0000"
      },
      "message": "Reformat with GJF\n\nChange-Id: I25aabd8bfee98a8849f986f2f98fa0e5a81d17b0\n"
    },
    {
      "commit": "b5ebf894a8b4de0f355d180fdff853d564e60f27",
      "tree": "63ad02d3b4a42f05cd36b493903b99784d94fdf9",
      "parents": [
        "081c0affd196fb5e77b6190b0bedc31babf6a619"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 17 08:13:32 2025 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 17 00:15:53 2025 -0800"
      },
      "message": "Introduce JSON_MAGIC_STRING as a common static value\n\nBuild the RestApiServlet.JSON_MAGIC encoded as a string and reuse it as\na common static value throughout the code, avoiding repetition and\nruntime string builds.\n\nChange-Id: I3c0df8fb20fcf52a06d4e74fba69f1833a5e1462\n"
    },
    {
      "commit": "081c0affd196fb5e77b6190b0bedc31babf6a619",
      "tree": "afc52b026dcc827d7648634f0cb7f39fdbc0ec05",
      "parents": [
        "cb960e61e95c69207a1038d36829e67c90202b43"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Dec 16 23:41:30 2025 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Dec 17 00:07:33 2025 -0800"
      },
      "message": "Throw HealthCheckFailedException upon failures or timeouts\n\nThrow a proper exception whenever a health check fails or does not\ncomplete within the expected time limit.\n\nPreviously, the check was returning a 500 status code with a JSON\npayload, which Gerrit Response API tolerated; however, since the\nintroduction of Ib1a259f9c05, the response cannot be a 500.\n\nAll APIs are expected to throw a proper exception to notify that the\nexecution has failed. To keep the response JSON payload, the healthcheck\nplugin needs to register an exception hook that recognises its\nHealthCheckFailedException and properly format the JSON\npayload.\n\nBug: Issue 469458273\nChange-Id: Ic6aca61070457b79c52579284a7931bb6d2963b5\n"
    },
    {
      "commit": "cb960e61e95c69207a1038d36829e67c90202b43",
      "tree": "cb7d07c602baa22a0ba298208d43951519b09991",
      "parents": [
        "f68b918885e2e346fab30b0a0fa4145857898ba6"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 25 10:37:18 2025 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 25 10:37:18 2025 +0000"
      },
      "message": "Fix typo in config documentation\n\nChange-Id: I3c19df5ea443546983676f83466648193edabd35\n"
    },
    {
      "commit": "f68b918885e2e346fab30b0a0fa4145857898ba6",
      "tree": "85850b2409ff3dbd79874df0740bd49c3e0a751c",
      "parents": [
        "3d79f4e35652f616cbbd9ce7c69e4295d14310c8"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Fri Oct 24 16:06:30 2025 +0200"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Fri Oct 24 16:06:30 2025 +0200"
      },
      "message": "Adapt to API change of TestMetricMaker\n\nThe constructor was made private in\nI07739b44d22c0d2d7cb257443551478c458d7daf, hence now use the static\ngetInstance() method to retrieve the only instance.\n\nChange-Id: I5f315027c66161752e854b392b70be81744f6edd\n"
    },
    {
      "commit": "3d79f4e35652f616cbbd9ce7c69e4295d14310c8",
      "tree": "4af0a03641a5447be2b4a12f2f165407ee134e58",
      "parents": [
        "db776bceade67226aed5310c9209437f5be88baa"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Jul 01 18:08:38 2025 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Thu Jul 03 17:21:08 2025 +0200"
      },
      "message": "Disable git space check by default\n\nSince the healthcheck is used also in the high-availability config\nusing a shared filesystem, this check should be disabled by default.\nSystem administrators should evaluate whether to enable this check\nbased on their system architecture and the plugins in use.\n\nChange-Id: I159b4f6ca1b78047ef1669fd1cb14b987a5db3e9\n"
    },
    {
      "commit": "db776bceade67226aed5310c9209437f5be88baa",
      "tree": "49e10ec6ead2895625477e399a4ca5d622c70c91",
      "parents": [
        "4c950eeb48a56d1d0fbee40e80dbe1c0b7830100"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Jul 01 16:47:16 2025 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Thu Jul 03 17:14:36 2025 +0200"
      },
      "message": "Add check for disk space usage in git directory\n\nIntroduce a new check (`gitspace`) that monitors available disk\nspace on the volume where Git repositories are stored.\nThe check fails if the usable space falls below a configurable\nthreshold, which defaults to 10%.\n\nThis addition helps detect low-disk-space conditions early, avoiding\npotential service instability due to lack of storage.\nThe threshold can be overridden in the healthcheck configuration\nusing the `minDiskFreePercent` parameter.\n\nBug: Issue 428666920\nChange-Id: Ic4d56f8ac55f6320dd3a7d2ee9dcadb980e14829\n"
    },
    {
      "commit": "4c950eeb48a56d1d0fbee40e80dbe1c0b7830100",
      "tree": "62d624f76aba82d3d5bcad4595ebe28fd5ceed59",
      "parents": [
        "8455bb78e93082ac85bfed093ed9ddf413f30478"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Sat Mar 29 23:29:14 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Sat Mar 29 23:29:14 2025 +0100"
      },
      "message": "ChangesIndexHealthCheckIT: Remove duplicate injected field sitePaths\n\nwhich is already injected into a field of the base class\nAbstractDaemonTest.\n\nChange-Id: I3b20609eaf5717d681d452edc10a5d2f7b3ae2ac\n"
    },
    {
      "commit": "8455bb78e93082ac85bfed093ed9ddf413f30478",
      "tree": "fa61fc1e3674bffaa094a095f58ae2b74b0113a8",
      "parents": [
        "fb28ec7967a9724752137935ee9f450732ad31ac"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Sat Mar 29 23:17:38 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Sat Mar 29 23:17:38 2025 +0100"
      },
      "message": "Migrate HealthCheck.StatusSummary to a Java record\n\nChange-Id: I7fdaf8d05380b73c68fd621c4dec4542d63123f4\n"
    },
    {
      "commit": "fb28ec7967a9724752137935ee9f450732ad31ac",
      "tree": "4914aab9fc816e158e579721baa5c105c0d6b26e",
      "parents": [
        "01f46cdbd0625cb49030c4de39b70f3a399a2843"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 27 17:02:49 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 27 17:02:49 2025 +0100"
      },
      "message": "Don\u0027t declare IOException which is never thrown\n\nChange-Id: Ic50d6c3e4d5d14d95481681b5b65b1f4c9716f54\n"
    },
    {
      "commit": "01f46cdbd0625cb49030c4de39b70f3a399a2843",
      "tree": "1b129b2ce047a75fb87a5b250584ee6450dacdf2",
      "parents": [
        "80bcfce38760721cfdb385a6254bae63f4994127"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 27 16:38:39 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 27 16:38:39 2025 +0100"
      },
      "message": "Migrate logging from slf4j to flogger\n\nand fix some log statements to join elements of collections to format\nthem properly.\n\nChange-Id: I69b640ae98e3a320cdf957b8c84481f406780d1b\n"
    },
    {
      "commit": "80bcfce38760721cfdb385a6254bae63f4994127",
      "tree": "98693800f32f78f9292db3582af44a15dcce8e27",
      "parents": [
        "8a66cd2eee6735c9f955839e9d9208ce784d0281"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Mar 26 17:23:56 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 27 15:44:13 2025 +0100"
      },
      "message": "AbstractHealthCheck: cancel tasks which raised an exception\n\nTo save compute resources we should cancel tasks which ended up causing\nan exception. We can cancel them since the healthcheck assumes\nthey failed so there is no point in letting them continue to run.\n\nIf we don\u0027t cancel tasks which failed due to a TimeoutException they\nmay cause subsequent tasks to again fail with a TimeoutException if they\ndon\u0027t get an execution thread since failed tasks still run and occupy\nthreads.\n\nChange-Id: I73e15d1a1c9bd4c7eb9bfc249843ae069782557c\n"
    },
    {
      "commit": "8a66cd2eee6735c9f955839e9d9208ce784d0281",
      "tree": "68ce6d068e06b0f0bc9674bad411b928d5c544b9",
      "parents": [
        "656e705e786d41a2f6b9db9565c127ebc4f07679"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 27 15:41:23 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 27 15:41:23 2025 +0100"
      },
      "message": "First calculate elapsed time before logging error\n\nsince elapsed time shouldn\u0027t include time spent on logging the error.\n\nChange-Id: I69bec59819d515c0456d6abc7a9933fffbedebcc\n"
    },
    {
      "commit": "656e705e786d41a2f6b9db9565c127ebc4f07679",
      "tree": "96a98c00bcca1a13cd1e1e6aefdfcd1d751664e2",
      "parents": [
        "7d460f7e7623fd64b13557daf735812fd34234f1"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Mar 26 17:17:48 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Thu Mar 27 15:08:14 2025 +0100"
      },
      "message": "AbstractHealthCheck: extract error handling to a method\n\nsince the error handling for TimeoutExceptions and other handled\nexceptions is quite similar. So by extracting this into a method we can\navoid some code duplication.\n\nChange-Id: I0974e2c341624049bb8c6f37933789ab2f3957b6\n"
    },
    {
      "commit": "7d460f7e7623fd64b13557daf735812fd34234f1",
      "tree": "8b8b1ea6066109c3f493dd7a851c184d60f33740",
      "parents": [
        "8739ef95c700586a094c27cd7342980e511d8535"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Mar 26 17:28:16 2025 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Mar 26 17:28:52 2025 +0100"
      },
      "message": "Auto-format source code using gjf 1.24.0\n\nChange-Id: I84656f4291ee311fd7c7a1b4b9c5b9fa07db2711\n"
    },
    {
      "commit": "8739ef95c700586a094c27cd7342980e511d8535",
      "tree": "6e3cb4047bd60f1d02491ecd57800b138d267c42",
      "parents": [
        "462d201c7a2cddab151718fa4eaad82113961d1d"
      ],
      "author": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Dec 09 15:49:55 2024 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Jan 16 11:56:59 2025 +0100"
      },
      "message": "Support Gerrit Replicas listening to a URL with a URI prefix\n\nThe healthcheck plugin was failing to serve the healthcheck in a Gerrit\nreplica that had a URI prefix defined in the listenUrl, e.g.\nhttps://*:8080/gerrit/. This was because the filter checking for the\nhealthcheck endpoint did not match the URI in that case.\n\nChange-Id: I778c9cc2805a983a1d952d50ae6fda66a684e5e3\n"
    },
    {
      "commit": "462d201c7a2cddab151718fa4eaad82113961d1d",
      "tree": "42769ae58cbcb917e2e424a04f4e76391e6d8c28",
      "parents": [
        "1c93439e98cc4efb3a44880278a9cbbe5628d36b",
        "f728d8bb9ae1b2691107c23f92ac170a1e513b2a"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 17:52:11 2024 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 17:52:11 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.10\u0027\n\n* stable-3.10:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Disable changesindex check for gerrit replica\n  Add active http workers check\n\nChange-Id: I247f9217dc699f66228b100046930cf25781cfe4\n"
    },
    {
      "commit": "f728d8bb9ae1b2691107c23f92ac170a1e513b2a",
      "tree": "42769ae58cbcb917e2e424a04f4e76391e6d8c28",
      "parents": [
        "8e4b3ef836503574ec2f50ca491476e2f445ad01",
        "fd330fe0feff68df8e0fb6899b33ad60959f8f85"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 17:47:21 2024 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 17:47:21 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.9\u0027 into stable-3.10\n\n* stable-3.9:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Disable changesindex check for gerrit replica\n  Add active http workers check\n\nChange-Id: I19def17a8eee2fb4617256330389862c3bd71368\n"
    },
    {
      "commit": "fd330fe0feff68df8e0fb6899b33ad60959f8f85",
      "tree": "4348178572e0d65ab2c0c1c3f313b5125d4c2403",
      "parents": [
        "24328491683175aa52bf9cbe12ef9c32a0fcbae5",
        "af7029fbf0acd2acf0839ae1a1cd24d579c09441"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 14:51:18 2024 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 14:51:18 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.8\u0027 into stable-3.9\n\n* stable-3.8:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: If249a0abcda10fedccd4232789fa6d665790ad4a\n"
    },
    {
      "commit": "af7029fbf0acd2acf0839ae1a1cd24d579c09441",
      "tree": "9bc83f66b625d79d53dd56e900b0f171c7635b2e",
      "parents": [
        "92f97e8dde8f1b22a1a78f7b32f79b49afeb9faa",
        "2e2b2ed5b2cba279e4de95319be36d6b5cb59a2f"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 14:00:16 2024 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 14:00:16 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.7\u0027 into stable-3.8\n\n* stable-3.7:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: I2262f7071c55e739b52d151f3f7d5a258f2f08df\n"
    },
    {
      "commit": "2e2b2ed5b2cba279e4de95319be36d6b5cb59a2f",
      "tree": "cfd5f4824e500a6b923ebf020bd383df0aad1d93",
      "parents": [
        "056106fff13847e10feecfd81bade1eaa834ed31",
        "317ea2121bda5299ce75ef771ef045708e963730"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 13:58:20 2024 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 13:58:20 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.6\u0027 into stable-3.7\n\n* stable-3.6:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: I211ca8452b5bb1005b71c43b897ad51d4c51563b\n"
    },
    {
      "commit": "317ea2121bda5299ce75ef771ef045708e963730",
      "tree": "cfd5f4824e500a6b923ebf020bd383df0aad1d93",
      "parents": [
        "579b52fab18c7d2d80973bba6a61f69de952dc5d",
        "88e5a36ef49423afd1774eb5bcf2f69cba7919a5"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 13:52:16 2024 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 13:58:01 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.5\u0027 into stable-3.6\n\n* stable-3.5:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: I1ea62b3b8b91841e4239acb1a31f130f97abddc5\n"
    },
    {
      "commit": "88e5a36ef49423afd1774eb5bcf2f69cba7919a5",
      "tree": "cfd5f4824e500a6b923ebf020bd383df0aad1d93",
      "parents": [
        "feb8c71b29ac2eedcf46fa993c214f95c75ff60c",
        "15d4738d9619e1f8944eaeb45882a8a3f90b549f"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 09:12:31 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 09:12:31 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.4\u0027 into stable-3.5\n\n* stable-3.4:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: I942a8c9286c02116fca13f5ba58e1910dc1ba882\n"
    },
    {
      "commit": "15d4738d9619e1f8944eaeb45882a8a3f90b549f",
      "tree": "f2139d32514aa4f3272ce142aa79bde5da5bf35f",
      "parents": [
        "da553843afb53429c76281460e43871a11128206",
        "acad4de5b065aea6db563a8030dd3cc05d39026c"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 09:09:04 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 09:09:04 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.3\u0027 into stable-3.4\n\n* stable-3.3:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: I9bc086c658c92c88dae3cc61753d7fbfb0123466\n"
    },
    {
      "commit": "acad4de5b065aea6db563a8030dd3cc05d39026c",
      "tree": "698df7e15c756987af17073e78fec44d2cb40cda",
      "parents": [
        "661b1d0055d39c69ec125da9189eef638cdc4b24",
        "43f722b156d0090730c1225feed44178cfcb0755"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 09:06:28 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 09:06:28 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: I28b6d1bd6bc74bb01ccb8866cbae13734dfe1f74\n"
    },
    {
      "commit": "43f722b156d0090730c1225feed44178cfcb0755",
      "tree": "698df7e15c756987af17073e78fec44d2cb40cda",
      "parents": [
        "2354250863055c92704f1ebd8136f2d440fb9a6b",
        "f865c31d59717c8bbbd0be7d34b75340fda07f5b"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 08:29:45 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Sep 27 08:29:45 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: I3177d27e777de928d2a94646427dabd0ad35ed45\n"
    },
    {
      "commit": "f865c31d59717c8bbbd0be7d34b75340fda07f5b",
      "tree": "0d1c39d0989f595ef332ec47b7be8ea749ee3392",
      "parents": [
        "8e0f199df5d1616fcbd8c1590bafc1d86cd0836d",
        "c1adbe3501e2138be29d9cecc420a085c7e75b27"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Sep 24 18:11:48 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Sep 25 20:32:11 2024 +0000"
      },
      "message": "Merge branch \u0027stable-3.0\u0027 into stable-3.1\n\n* stable-3.0:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: Ie60eb05bac2b22f7bb1156d2609b4a38467aecd7\n"
    },
    {
      "commit": "c1adbe3501e2138be29d9cecc420a085c7e75b27",
      "tree": "ad20d4d22f2402243044edb7c3f060d3b713638b",
      "parents": [
        "4fe84fbc2b4088eb84077538afc46855bfb9fbec",
        "a0d397636db00134631f016d2980ccc6b44dcea0"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Sep 24 17:34:07 2024 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Sep 24 17:34:07 2024 +0000"
      },
      "message": "Merge branch \u0027stable-2.16\u0027 into stable-3.0\n\n* stable-2.16:\n  Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n  Add active http workers check\n\nChange-Id: I6fab7e38598cd6ddd9b22831a74092ba7b8ef6da\n"
    },
    {
      "commit": "a0d397636db00134631f016d2980ccc6b44dcea0",
      "tree": "e109b3c3ea12a66de36a43a8c3fb9f5193a3bb0c",
      "parents": [
        "7e1ef6ce913b0904b61490f380c546a573897644"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Aug 28 22:36:58 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Aug 28 22:49:06 2024 +0000"
      },
      "message": "Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n\nThe ActiveWorkersCheck was triggering the creation\nof a new check for every incoming REST-API call, causing\npotential deadlocks because of the creation of the\nDropWizard\u0027s MetricMaker.\n\nAs a consequence, the Gerrit instance could have ran\nout of incoming HTTP threads.\n\nSee as example stack trace:\n\nHTTP GET /config/server/healthcheck~status\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat com.google.gerrit.metrics.dropwizard.DropWizardMetricMaker.newCounter(DropWizardMetricMaker.java:142)\n\t- waiting to lock \u003c0x00007f828e8b80b0\u003e (a com.google.gerrit.metrics.dropwizard.DropWizardMetricMaker)\n\tat com.google.gerrit.server.plugins.PluginMetricMaker.newCounter(PluginMetricMaker.java:55)\n\tat com.googlesource.gerrit.plugins.healthcheck.HealthCheckMetrics.getFailureCounterMetric(HealthCheckMetrics.java:33)\n\tat com.googlesource.gerrit.plugins.healthcheck.check.AbstractHealthCheck.\u003cinit\u003e(AbstractHealthCheck.java:54)\n\tat com.googlesource.gerrit.plugins.healthcheck.check.ActiveWorkersCheck.\u003cinit\u003e(ActiveWorkersCheck.java:46)\n\nChange-Id: I947b46b58e1d44840b3a44f740627e55dc3194aa\n(cherry picked from commit 1c93439e98cc4efb3a44880278a9cbbe5628d36b)\n"
    },
    {
      "commit": "1c93439e98cc4efb3a44880278a9cbbe5628d36b",
      "tree": "3a23dc1a917bfe7e51f95459fcfd375b8c9a3702",
      "parents": [
        "19c62e17795603abf3c74a16272c05b1b9e3a3f3"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Aug 28 22:36:58 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Aug 28 22:49:33 2024 +0100"
      },
      "message": "Add missing Singleton to ActiveWokersCheck and DeadlockCheck\n\nThe ActiveWorkersCheck was triggering the creation\nof a new check for every incoming REST-API call, causing\npotential deadlocks because of the creation of the\nDropWizard\u0027s MetricMaker.\n\nAs a consequence, the Gerrit instance could have ran\nout of incoming HTTP threads.\n\nSee as example stack trace:\n\nHTTP GET /config/server/healthcheck~status\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat com.google.gerrit.metrics.dropwizard.DropWizardMetricMaker.newCounter(DropWizardMetricMaker.java:142)\n\t- waiting to lock \u003c0x00007f828e8b80b0\u003e (a com.google.gerrit.metrics.dropwizard.DropWizardMetricMaker)\n\tat com.google.gerrit.server.plugins.PluginMetricMaker.newCounter(PluginMetricMaker.java:55)\n\tat com.googlesource.gerrit.plugins.healthcheck.HealthCheckMetrics.getFailureCounterMetric(HealthCheckMetrics.java:33)\n\tat com.googlesource.gerrit.plugins.healthcheck.check.AbstractHealthCheck.\u003cinit\u003e(AbstractHealthCheck.java:54)\n\tat com.googlesource.gerrit.plugins.healthcheck.check.ActiveWorkersCheck.\u003cinit\u003e(ActiveWorkersCheck.java:46)\n\nChange-Id: I947b46b58e1d44840b3a44f740627e55dc3194aa\n"
    },
    {
      "commit": "19c62e17795603abf3c74a16272c05b1b9e3a3f3",
      "tree": "8f387dd5956ac0454d8f8f0554aa2b4b12d1b083",
      "parents": [
        "123d5be3690708c8eb314140d99dd81901581bc8",
        "8e4b3ef836503574ec2f50ca491476e2f445ad01"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed May 08 00:00:40 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed May 08 00:00:40 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.10\u0027\n\n* stable-3.10:\n  Short-circuit on failed healthchecks\n  Simplify construction of map of check results\n  Simplify check for any failures\n  Run checks in parallel\n\nChange-Id: I30c16e082fca33af3ae82d610d8e5191fdaf584d\n"
    },
    {
      "commit": "8e4b3ef836503574ec2f50ca491476e2f445ad01",
      "tree": "8f387dd5956ac0454d8f8f0554aa2b4b12d1b083",
      "parents": [
        "44cf06ca49c573cb6417260d55ab3a8aa570638c"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun May 05 21:37:37 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 06 10:36:20 2024 +0100"
      },
      "message": "Short-circuit on failed healthchecks\n\nBefore the full set of checks was always executed even if it was clear\nthat it would have failed because of one of the checks failing.\n\nAvoid running the additional checks when one of the checks is failing\nfor any reason and therefore running the full set would not be useful.\n\nIntroduce the new status NOT_RUN that clarifies that the check was\nnot executed because it would have not change the overall status.\n\nThis change allows a Gerrit to avoid running extra checks when the\nsystem is already struggling. Having too may healthchecks could\nactually prevent the system to become healthy again.\nMinimizing the execution of checks on a struggling system is paramount\nfor allowing it to recover more quickly.\n\nChange-Id: I885b3df06b60e322f12b77674be02536e8131499\n"
    },
    {
      "commit": "44cf06ca49c573cb6417260d55ab3a8aa570638c",
      "tree": "a69e25afecb77ef00151627256e950fb9caadb85",
      "parents": [
        "13a5b362a4614c656b778523881cb7678f5304c8"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun May 05 21:18:01 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 06 10:31:16 2024 +0100"
      },
      "message": "Simplify construction of map of check results\n\nThere isn\u0027t any need to convert the checks into\nan array of objects and then cast them back\nto their original types.\n\nChange-Id: If39d799f2fec670452e27eb7483a8d978c687c81\n"
    },
    {
      "commit": "13a5b362a4614c656b778523881cb7678f5304c8",
      "tree": "e721b4355680ee34642bc76a8ae29788354c1b7a",
      "parents": [
        "3b94c70630ad1f28001e9b702a5d588e1623ffda"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun May 05 21:00:11 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 06 09:30:04 2024 +0000"
      },
      "message": "Simplify check for any failures\n\nMake the expression to check for any failures easier\nto read.\n\nChange-Id: Ie4f949a199c85df46cacd4f819f27f6b2204fa98\n"
    },
    {
      "commit": "3b94c70630ad1f28001e9b702a5d588e1623ffda",
      "tree": "ccf4ae32ea165443de3eea7df38012b2046ce604",
      "parents": [
        "123d5be3690708c8eb314140d99dd81901581bc8"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun May 05 20:54:11 2024 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon May 06 10:28:38 2024 +0100"
      },
      "message": "Run checks in parallel\n\nThe execution and check of the result of the individual\nchecks were made in a serial stream processing, which means\nthat the healthcheck endpoint could have actually failed\neven if the individual healthchecks would have all completed\nin a timely manner.\n\nIntroduce the parallel processing of the stream so that\nall checks are running in parallel and have more chances\nto be completed within the expected timeout from the\nload balancer.\n\nChange-Id: Ibbcbbc429bab8c4694f626478a1e7832eac6f64b\n"
    },
    {
      "commit": "123d5be3690708c8eb314140d99dd81901581bc8",
      "tree": "53fd3048a8d861de7e91ce190982bab01886c171",
      "parents": [
        "2def474c8ef197b00ae0bb77ae002752f7cab581"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Tue Mar 12 17:40:09 2024 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Tue Mar 12 17:40:09 2024 +0100"
      },
      "message": "Adapt to API change in gerrit core\n\nGerrit core changed declared exceptions of RestSession methods in\nI21bef286bbe3ea9e3fc819d8912a501d9350dc8a from IOException to Exception.\n\nChange-Id: Ic19b18bc97bb8cdd7d3d96949ec8ff42e4dd978e\n"
    },
    {
      "commit": "24328491683175aa52bf9cbe12ef9c32a0fcbae5",
      "tree": "1ee48b7b1c69e682dc922137f81d0fafce1c5143",
      "parents": [
        "9d88dfbe17ad79a96a653a599fc1a0434831723f"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Jan 31 00:45:28 2024 +0100"
      },
      "committer": {
        "name": "Thomas Dräbing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Feb 22 10:48:35 2024 +0000"
      },
      "message": "Disable changesindex check for gerrit replica\n\nGerrit replicas don\u0027t have a changes index hence this check should be\nautomatically disabled if the server is a replica.\n\nThis was missed in Ibbf77115e801e9fc01ec264b01a656b2a2b29a23.\n\nChange-Id: I651c0b08817e7c732c419a0cd3c28fe1e17b31e5\n(cherry picked from commit 2def474c8ef197b00ae0bb77ae002752f7cab581)\n"
    },
    {
      "commit": "2def474c8ef197b00ae0bb77ae002752f7cab581",
      "tree": "47126eea08fe27e7400f7f4c6b366f2a94ede91b",
      "parents": [
        "74267b19cd96c11568850fe974d175ba5da934cc"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Jan 31 00:45:28 2024 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Jan 31 00:45:28 2024 +0100"
      },
      "message": "Disable changesindex check for gerrit replica\n\nGerrit replicas don\u0027t have a changes index hence this check should be\nautomatically disabled if the server is a replica.\n\nThis was missed in Ibbf77115e801e9fc01ec264b01a656b2a2b29a23.\n\nChange-Id: I651c0b08817e7c732c419a0cd3c28fe1e17b31e5\n"
    },
    {
      "commit": "74267b19cd96c11568850fe974d175ba5da934cc",
      "tree": "84e41f029b753ef7fbdc7d5e354e005e9da6e28b",
      "parents": [
        "5143507fc0cfda89d709d6abc6bcabf14f5c30f7"
      ],
      "author": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Jan 31 00:22:41 2024 +0100"
      },
      "committer": {
        "name": "Matthias Sohn",
        "email": "matthias.sohn@sap.com",
        "time": "Wed Jan 31 00:22:41 2024 +0100"
      },
      "message": "Remove unnecessary cast\n\nChange-Id: Id017f1f4251fe5b1700be8565094df96e103d000\n"
    },
    {
      "commit": "5143507fc0cfda89d709d6abc6bcabf14f5c30f7",
      "tree": "f0eb44e462b8d1921ea8db8372842113865bbecc",
      "parents": [
        "9e9c4de7f76d8a7c080b70e11b871bfc12d7bc99",
        "9d88dfbe17ad79a96a653a599fc1a0434831723f"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Jan 24 08:08:29 2024 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Jan 24 08:08:29 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.9\u0027\n\n* stable-3.9:\n  Add missing `return` statement\n\nChange-Id: Idc7ac3d2f7c71ab7e9ff4b17aa27798b3e56ae95\n"
    },
    {
      "commit": "9e9c4de7f76d8a7c080b70e11b871bfc12d7bc99",
      "tree": "bdc2c75e2a8c4f6cedc74d38797fb81fe513e201",
      "parents": [
        "f74437a2747ee98b10c97cd381ba71f38cbe824a"
      ],
      "author": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Wed Jan 17 15:24:12 2024 +0000"
      },
      "committer": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Thu Jan 18 16:02:01 2024 +0000"
      },
      "message": "Stop creating HealthCheckConfig with a dynamically injected plugin name\n\nCurrently, in order to create a `HealthCheckConfig` instance one needs\nto pass the plugin name. The plugin name is injected dynamically when\nthe object is provisioned. The constructor will then create a config\nobject using a plugin config factory with the provided plugin name.\n\nThis in turn means the config object will hold the contents of the\n`plugin.config` file. For any \"core\" healthcheck, ie a healthcheck\ndefined in the healthcheck plugin, this works fine, ie configuration is\nretrieved from the `healthcheck.config` file.\n\nThe problem arises for any external check, ie a check defined in an\nexternal plugin. In that case, the `pluginName` will be the one of the\nexternal plugin. So for a plugin foo, the `HealthCheckConfig` object will\nuse config located in a file foo.config. Here the external plugin\u0027s\nentire config is leaked into the healthcheck config object.\n\nThis is an even bigger problem because it is assumed every plugin\nprovides its config through a `pluginName.config` file, which is not\ntrue. A prime example of this is the pull-replication plugin, its config\nis defined in a `replication.config` file. Therefore, for such cases,\nany configuration defined in the plugin\u0027s config will be silently\nignored.\n\nA major impact of the above problems is that for external checks, we\ncan\u0027t have the \"base\" healthcheck config in the `healthcheck.config`\nfile. By \"base\" here we refer mainly to the `enabled` flag and the\ntimeout, both core features of any healthcheck specification.\nSuch configuration must be defined in the external plugin\u0027s config file.\n\nStop injecting dynamically the plugin name, instead hardcode it to the\nhealthcheck plugin\u0027s name. An additional benefit of this approach is\nthat the HealthCheckConfig will truly be a singleton object, as both\ncore and external healthchecks will use the same instance.\n\nBug: Issue 312895374\nChange-Id: I445ceafb69c74bc60530f25b44aa80e09262c2a7\n"
    },
    {
      "commit": "f74437a2747ee98b10c97cd381ba71f38cbe824a",
      "tree": "bdd2eb249c324253a5aa5ce3cc87bd3d381c35a5",
      "parents": [
        "018aefa384f4d55d04b5e60147d96aaebe269bb6"
      ],
      "author": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Mon Jan 15 11:48:01 2024 +0000"
      },
      "committer": {
        "name": "Christoforos Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Mon Jan 15 11:48:01 2024 +0000"
      },
      "message": "Add missing registration step in the extension docs\n\nChange-Id: I07bf315db590a6460eb22a9b9eee9e9b8720e2d7\n"
    },
    {
      "commit": "9d88dfbe17ad79a96a653a599fc1a0434831723f",
      "tree": "3e2eb416463a7c773992a50f3b2f645f03660db4",
      "parents": [
        "6c1d101485c4719cda18622b75b21c75a54e0a84"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Jan 12 09:22:27 2024 +0000"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Jan 12 09:23:24 2024 +0000"
      },
      "message": "Add missing `return` statement\n\nChange-Id: Ide75519272c0bd636d3476a9a413edcfc6212cf9\n"
    },
    {
      "commit": "018aefa384f4d55d04b5e60147d96aaebe269bb6",
      "tree": "cf4735f30a12f845e119857066456ad1cd7426c3",
      "parents": [
        "07bfb72a89e5864bf90c1df4700e38a83feac18b",
        "6c1d101485c4719cda18622b75b21c75a54e0a84"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Dec 30 18:31:20 2023 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Dec 30 18:31:20 2023 +0100"
      },
      "message": "Merge branch \u0027stable-3.9\u0027\n\n* stable-3.9:\n  Don\u0027t scan gerrit_index.config for current version when no Lucene\n  Listen to OnlineUpgradeListener.onSuccess event\n  Improve visibility of the integration tests\n  Implement changes indexes lock files check\n  Introduce the changes index health check stub\n  Format using google-java-format\n\nChange-Id: I601ed267978fd1511fde1dfe5f3cd6d2044ee479\n"
    },
    {
      "commit": "6c1d101485c4719cda18622b75b21c75a54e0a84",
      "tree": "cf4735f30a12f845e119857066456ad1cd7426c3",
      "parents": [
        "2ed442652fe36dfd1fb1ce061717a8d96c3f2c39"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Dec 28 20:36:28 2023 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Dec 28 20:36:28 2023 +0100"
      },
      "message": "Don\u0027t scan gerrit_index.config for current version when no Lucene\n\nWith the index engine is not Lucene don\u0027t scan `gerrit_index.config` for\nthe newest version as index checking is not supported anyway. Apply the\nsame logic for `onSuccess` so that handler is not performing empty\nupdates. To be reviewed when issue 316743624 gets implemented.\n\nChange-Id: I1f7b050b7f58cdbe35013038f45ec4195a669a8a\n"
    },
    {
      "commit": "2ed442652fe36dfd1fb1ce061717a8d96c3f2c39",
      "tree": "87ae5c98275c28024baaa21870ebe5435f5832ce",
      "parents": [
        "07b2bf3d4a755c13d282d1ba440eb217e7b8f3d9"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Dec 22 12:00:20 2023 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Dec 28 20:17:28 2023 +0100"
      },
      "message": "Listen to OnlineUpgradeListener.onSuccess event\n\nIssue:\nDuring the Gerrit upgrade sometimes there is also an index upgrade\ntherefore Gerrit starts with the old index version set as ready and\nissues an on-line reindex. It finally switches to the new version and\nmarks it as ready (marking the previous one as not-ready).\n\nSolution:\nUpon the Gerrit start detect the index version as it was before (IOW\nmonitor the old version\u0027s lock files). But in addition listen to the\n`OnlineUpgradeListener.onSuccess` event and in case when `changes`\non-line reindex gets finished and its version changed switch to monitor\nthe new changes index version lock files.\n\nThe following scenarios were tested:\n* gerrit 3.8.3 site was initiated and ~200 changes were created\n* gerrit 3.9.1 init was performed and healthcheck plugin was dropped to\n  plugins\n* gerrit 3.9.1 was started and `healthcheck~status` endpoint was called\n  a few times while reindex of changes was performed - all `passed`\n* switch to newer changes index version locks was confirmed with the\n  following log entry:\n\n    QueryChangesHealthCheck : Changes index healthcheck switched from index version 82 to 84\n\n  but also by removing `write.lock` from old version (healtcheck passed)\n  and from new version (healtheck failed) as expected\n* calling manual reindex on the same version was ignored by healtcheck\n  - again as expected\n\nBug: Issue 40015289\nChange-Id: I6c2f8feebadafeb89f4ac8c17bce4b96ab8a5685\n"
    },
    {
      "commit": "07b2bf3d4a755c13d282d1ba440eb217e7b8f3d9",
      "tree": "16fba71dcee6bfe27b25d6476b28a936899b8026",
      "parents": [
        "bc3bd13d3ee8d85884e36bcaa79c183bde536449"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Dec 19 07:51:17 2023 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Dec 21 09:47:34 2023 +0100"
      },
      "message": "Improve visibility of the integration tests\n\nChanges:\n* add `Abstract*Test.java` classes to common tests bazel library\n* extract unit tests to the bazel test target\n* extract each integration test to the bazel test target\n\nAs a result:\n* unit tests and each integration test are executed in parallel\n  (especially beneficial in RBE) improving the visbility in case of\n  failure as it will be reported against the unit tests or the\n  specific integration test\n* locally the test time is reduced on M1 from ~25 to ~18\n\nNote that `@Ignore` annotation on `AbstractHealthCheckIntegrationTest`\nis no longer needed hence it was removed.\n\nChange-Id: Ie3b979c5b2e8d39576834ce1e8815b5e8ef8969c\n"
    },
    {
      "commit": "bc3bd13d3ee8d85884e36bcaa79c183bde536449",
      "tree": "91f13f9b11d210bec7cdf8b84c416c741d2baa08",
      "parents": [
        "9c01319e981f542d6f3de87afd0a67303080f8cf"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri Dec 15 10:52:14 2023 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Thu Dec 21 09:42:41 2023 +0100"
      },
      "message": "Implement changes indexes lock files check\n\nDetect the following failures of both open and closed changes indexes\nwrite.lock files:\n* write.lock file is missing\n* write.lock file is not writeable by Gerrit\n\nNotes:\n* so far only changes indexes are subject of check\n* in order to test it `UseLocalDisk` annotation has to be applied (and\n  it is heavy operation) therefore `HealthCheckIT` was modified so that\n  `changesindex` healthcheck is disabled for all test cases (or\n  additionally disabled in case when some checks get disabled)\n* `changesindex` healthcheck test cases were added to a dedicated\n  `ChangesIndexHealthCheckIT` file\n* common functions from `HealthCheckIT` and `ChangesIndexHealthCheckIT`\n  were introduced in `AbstractHealthCheckIntegrationTest`\n\nThe write.lock ownership change detection was tested manually with the\nfollowing steps:\n* docker run --rm -p 8080:8080 -p 29418:29418 -ti --name gerrit_3.9.1 gerritcodereview/gerrit:3.9.1\n* docker cp bazel-bin/plugins/healthcheck/healthcheck.jar gerrit_3.9.1:/var/gerrit/plugins\n* curl localhost:8080/config/server/healthcheck~status returned\n  \"changesindex\": {\n    \"result\": \"passed\",\n    \"ts\": 1703147883563,\n    \"elapsed\": 0\n  }\n* docker exec -u root -it gerrit_3.9.1 /bin/bash\n* chown root:root /var/gerrit/index/changes_0084/open/write.lock\n* curl localhost:8080/config/server/healthcheck~status returned\n  \"changesindex\": {\n    \"result\": \"failed\",\n    \"ts\": 1703148022276,\n    \"elapsed\": 0\n  }\n\nIOW it works as expected.\n\nBug: Issue 40015289\nChange-Id: I66a4053483e2c10eb28c150782c33cfd10dc2b15\n"
    },
    {
      "commit": "9c01319e981f542d6f3de87afd0a67303080f8cf",
      "tree": "019efa9a89d65ae3b91b43f0d0ed190961b17cf7",
      "parents": [
        "251947d87ca98de0f5da3ddf45719c77566d17e2"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Dec 05 19:36:19 2023 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Dec 20 07:24:28 2023 +0100"
      },
      "message": "Introduce the changes index health check stub\n\nThis patch introduces the change index healtch check stub that:\n* reports `disabled` when `changesindex` healthcheck is disabled\n* reports `disabled` when different than `lucene` index is used as ATM\n  there are no means to verify other indexes\n* ALWAYS returns `passed` (no real check yet)\n\nNotes:\n* changes (as the most important) is examined only ATM\n* documentation was updated to contain the check in question.\n\nBug: Issue 40015289\nChange-Id: Ibbf77115e801e9fc01ec264b01a656b2a2b29a23\n"
    },
    {
      "commit": "251947d87ca98de0f5da3ddf45719c77566d17e2",
      "tree": "858e4b56efb11fc7873d9f7abb6965d8ea853fc4",
      "parents": [
        "dd4e422f691b8aa17467032675c1cf54d2e916ed"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto@gmail.com",
        "time": "Fri Nov 10 09:19:12 2023 +0000"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto@gmail.com",
        "time": "Fri Nov 10 09:19:12 2023 +0000"
      },
      "message": "Format using google-java-format\n\nChange-Id: I49a651b2a2107daea059f8932e9a20fe75155a15\n"
    },
    {
      "commit": "07bfb72a89e5864bf90c1df4700e38a83feac18b",
      "tree": "6b5608f257f4ebce1028b68e0c645353aca7b2c0",
      "parents": [
        "35a8de31b8fb7efb1f1004013f5754dae8ef4472",
        "dd4e422f691b8aa17467032675c1cf54d2e916ed"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Nov 08 08:29:16 2023 -0800"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Wed Nov 08 08:29:24 2023 -0800"
      },
      "message": "Merge branch \u0027stable-3.9\u0027\n\n* stable-3.9:\n  Rename config.md to metrics.md\n  Add the ability to fail healthcheck by creating a fail file\n  Introduce healthcheck extension\n  Revert \"Adapt list projects tests to ListProjectsImpl new type\"\n\nChange-Id: I7be479009a730ab34bb4fb2409ed058580d5c238\n"
    },
    {
      "commit": "dd4e422f691b8aa17467032675c1cf54d2e916ed",
      "tree": "6b5608f257f4ebce1028b68e0c645353aca7b2c0",
      "parents": [
        "f1ada957b2f9541d7e4582109aa612683257ad3c",
        "92f97e8dde8f1b22a1a78f7b32f79b49afeb9faa"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 11:12:58 2023 -0800"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 16:43:23 2023 -0800"
      },
      "message": "Merge branch \u0027stable-3.8\u0027 into stable-3.9\n\n* stable-3.8:\n  Rename config.md to metrics.md\n  Add the ability to fail healthcheck by creating a fail file\n  Revert \"Adapt list projects tests to ListProjectsImpl new type\"\n\nChange-Id: Icb283845635c6dd0f73c9bf390c091ceea8b5c33\n"
    },
    {
      "commit": "92f97e8dde8f1b22a1a78f7b32f79b49afeb9faa",
      "tree": "1dab08245f19fe2e07f9fbfdcfd8bb9f15fc7274",
      "parents": [
        "daa7429154ebc081ed1c62ae38670b2ba08c503f",
        "056106fff13847e10feecfd81bade1eaa834ed31"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 11:12:04 2023 -0800"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 11:12:04 2023 -0800"
      },
      "message": "Merge branch \u0027stable-3.7\u0027 into stable-3.8\n\n* stable-3.7:\n  Rename config.md to metrics.md\n  Add the ability to fail healthcheck by creating a fail file\n\nChange-Id: Ic01fbf65ddfccd6abb3856600d7c4919bc2819e7\n"
    },
    {
      "commit": "056106fff13847e10feecfd81bade1eaa834ed31",
      "tree": "96f0c34a1a00dafc6ff692e169c782eb7f2c474f",
      "parents": [
        "c84dfceab293924d9daaaa0c7f5c91ba8945a85d",
        "579b52fab18c7d2d80973bba6a61f69de952dc5d"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 11:11:28 2023 -0800"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 11:11:28 2023 -0800"
      },
      "message": "Merge branch \u0027stable-3.6\u0027 into stable-3.7\n\n* stable-3.6:\n  Rename config.md to metrics.md\n  Add the ability to fail healthcheck by creating a fail file\n\nChange-Id: I210391682ccee6ce6ae3127cbd32f9e46af8130a\n"
    },
    {
      "commit": "579b52fab18c7d2d80973bba6a61f69de952dc5d",
      "tree": "96f0c34a1a00dafc6ff692e169c782eb7f2c474f",
      "parents": [
        "c84dfceab293924d9daaaa0c7f5c91ba8945a85d",
        "feb8c71b29ac2eedcf46fa993c214f95c75ff60c"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 11:10:23 2023 -0800"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 11:10:23 2023 -0800"
      },
      "message": "Merge branch \u0027stable-3.5\u0027 into stable-3.6\n\n* stable-3.5:\n  Rename config.md to metrics.md\n  Add the ability to fail healthcheck by creating a fail file\n\nChange-Id: Id594338796a2598747c49d3e8580b7a5102f1058\n"
    },
    {
      "commit": "feb8c71b29ac2eedcf46fa993c214f95c75ff60c",
      "tree": "96f0c34a1a00dafc6ff692e169c782eb7f2c474f",
      "parents": [
        "c84dfceab293924d9daaaa0c7f5c91ba8945a85d",
        "da553843afb53429c76281460e43871a11128206"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 11:09:25 2023 -0800"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Tue Nov 07 11:09:25 2023 -0800"
      },
      "message": "Merge branch \u0027stable-3.4\u0027 into stable-3.5\n\n* stable-3.4:\n  Rename config.md to metrics.md\n  Add the ability to fail healthcheck by creating a fail file\n\nChange-Id: Ic07ffce0ce556b8c22b72a616acf11818b4cf520\n"
    },
    {
      "commit": "da553843afb53429c76281460e43871a11128206",
      "tree": "6339479c57979374d63c3abd962dbd5e2fa25293",
      "parents": [
        "a26ab72dd3b75ff95b8684bc8c9a60a1aed2b8a0"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Oct 30 15:46:36 2023 +0000"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu Nov 02 00:40:16 2023 +0000"
      },
      "message": "Rename config.md to metrics.md\n\nconfig.md only contained information on metrics, makes more sense for it\nto be name metrics.md\n\nChange-Id: Ie35774e52aa97351c0b7c351c6084b428fe52b7d\n"
    },
    {
      "commit": "a26ab72dd3b75ff95b8684bc8c9a60a1aed2b8a0",
      "tree": "03a84fa1f543c6d3b3f4ee0f3e602827ad456da8",
      "parents": [
        "4294ad0b803c4e4ff6da4e72fe6f6c0df93cbd72"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Fri Oct 27 19:09:28 2023 -0700"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Thu Nov 02 00:29:59 2023 +0000"
      },
      "message": "Add the ability to fail healthcheck by creating a fail file\n\nThis will enable the Gerrit Admin to cause healthcheck failures by\nsimply creating a file at a configurable location.\nThis is useful when a node needs to be taken  out of the pool of\navailable nodes, for example while it undergoes maintanence and should\nnot be serving requests.\n\nThis approach is instantaneous, unlike enabling/disabling the plugin as\nGerrit only unloads/reloads plugins once every \u0027plugins.frequency\u0027.\nThe file approach gives more immediate feedback as the healthcheck\nwill start failing as soon as the file is created, even if we\u0027re\nalready processing the request.\n\nChange-Id: I999ca049cff9213d3720a982530a5b03f2d02e44\n"
    },
    {
      "commit": "f1ada957b2f9541d7e4582109aa612683257ad3c",
      "tree": "03ce55c0be5d8db99e94205e802161426d6ce2e1",
      "parents": [
        "35a8de31b8fb7efb1f1004013f5754dae8ef4472",
        "96b2a967c368cee9d0bbfc03b89a1c44092a69cb"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Oct 25 14:00:48 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Oct 25 14:00:48 2023 +0000"
      },
      "message": "Merge \"Introduce healthcheck extension\" into stable-3.9"
    },
    {
      "commit": "96b2a967c368cee9d0bbfc03b89a1c44092a69cb",
      "tree": "9db845be567bcf7f66ce2be55ccf28a734e74f74",
      "parents": [
        "3f2c4091f821cc761b5183721871e7830a7f078e"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Thu Aug 24 16:14:11 2023 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Wed Oct 25 15:44:58 2023 +0200"
      },
      "message": "Introduce healthcheck extension\n\nAllow plugins to provide their own health check that should participate\nin the definition of healthiness of the node.\n\nIn order to achieve this, the signature of `AbstractHealthCheck` had to\nbe changed, so that no implementation had to be injected.  It now takes\nthe `MetricMaker` interface, rather than an instance of\n`HealthCheckMetrics.Factory`, which would require an implementation of\nMetricMaker which is not already bound.\n\nThis refactoring leverages on change I63c9b7f2a1, which allows gerrit\nplugins to expose a new `Gerrit-ApiModule` in the manifest enabling\nother plugins to register their extensions.\n\nBug: Issue 40015586\nChange-Id: Ibc822ec3981eb12a29439fba76706c387aede786\n"
    },
    {
      "commit": "daa7429154ebc081ed1c62ae38670b2ba08c503f",
      "tree": "73e6e7ddbb60eb2aa0355543b8951f994607ccdb",
      "parents": [
        "35a8de31b8fb7efb1f1004013f5754dae8ef4472"
      ],
      "author": {
        "name": "d073103",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Oct 23 09:36:21 2023 +0200"
      },
      "committer": {
        "name": "d073103",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Oct 23 09:38:15 2023 +0200"
      },
      "message": "Revert \"Adapt list projects tests to ListProjectsImpl new type\"\n\nThis commit was not compatible with Gerrit 3.8.\n\nThis reverts commit 12ce0029b16d18bca23343013a3957f1e48a3f0d.\n\nChange-Id: Ia9dc3c11b1dc39c68f2b6ab129989c90be8135dc\n"
    },
    {
      "commit": "35a8de31b8fb7efb1f1004013f5754dae8ef4472",
      "tree": "536149122ffb5f70c446fd5ffce093b720b6ecff",
      "parents": [
        "c5488cf172ceebd99d075a36ed3020af6fa0558e",
        "12ce0029b16d18bca23343013a3957f1e48a3f0d"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 16 11:12:05 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 16 11:12:05 2023 +0000"
      },
      "message": "Merge \"Adapt list projects tests to ListProjectsImpl new type\""
    },
    {
      "commit": "12ce0029b16d18bca23343013a3957f1e48a3f0d",
      "tree": "e38fbe3676fe5ccd2d05e991594b96a6d25ad633",
      "parents": [
        "c84dfceab293924d9daaaa0c7f5c91ba8945a85d"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 16 08:42:32 2023 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Oct 16 08:44:49 2023 +0100"
      },
      "message": "Adapt list projects tests to ListProjectsImpl new type\n\nGerrit master transformed ListProjects to an interface\nand defined a new ListProjectsImpl class with an additional\nconstructor parameter.\n\nAdapt the tests to use the new class and constructor\u0027s\nparameters.\n\nChange-Id: I542e6729e98ef0342e7e8c238a5877636f0d60a6\n"
    },
    {
      "commit": "c5488cf172ceebd99d075a36ed3020af6fa0558e",
      "tree": "73e6e7ddbb60eb2aa0355543b8951f994607ccdb",
      "parents": [
        "3f2c4091f821cc761b5183721871e7830a7f078e",
        "14fe339fb06fb21c249af7b2c5d53237c1b9257f"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Sat Oct 14 19:41:03 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Oct 14 19:41:03 2023 +0000"
      },
      "message": "Merge \"Exclude intellij files from git\""
    },
    {
      "commit": "3f2c4091f821cc761b5183721871e7830a7f078e",
      "tree": "f84b241c573e3a4da4cf3174cdc5d5251b2673d0",
      "parents": [
        "c84dfceab293924d9daaaa0c7f5c91ba8945a85d"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue May 09 15:15:51 2023 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue May 09 15:15:51 2023 +0100"
      },
      "message": "Fix JGitHealthCheckTest by wrapping ref-update with test context\n\nThe [1] change introduces the validation of a test context that is\nneeded for all ref-updates. Adjust the test case to adhere to the new\nrequirements.\n\n[1] https://gerrit-review.googlesource.com/c/gerrit/+/357956\n\nChange-Id: I25a446b558f30115be60d5d6bf5d5d501f3cc1e5\n"
    },
    {
      "commit": "14fe339fb06fb21c249af7b2c5d53237c1b9257f",
      "tree": "fca2a79699b25267ba3008071695e31c57d7f2b5",
      "parents": [
        "c84dfceab293924d9daaaa0c7f5c91ba8945a85d"
      ],
      "author": {
        "name": "Christopher Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Tue May 09 09:17:25 2023 +0100"
      },
      "committer": {
        "name": "Christopher Miliotis",
        "email": "christoforos.miliotis.dev@gmail.com",
        "time": "Tue May 09 09:17:25 2023 +0100"
      },
      "message": "Exclude intellij files from git\n\nAdd gitignore file and exclude intellij files.\n\nChange-Id: I0847fe078c7eb5f29129dfc35beb50b3dee03203\n"
    },
    {
      "commit": "c84dfceab293924d9daaaa0c7f5c91ba8945a85d",
      "tree": "ef6a73899b5be4f172e1e5718ed1538868c6ed3c",
      "parents": [
        "5be80596ca134198737d9e5825e3af65cfd51c8f"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Nov 15 11:55:54 2022 +0100"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Tue Nov 15 11:57:54 2022 +0100"
      },
      "message": "Make documentation consistent\n\nDocumentation was spread between 2 places.\nMake it consistent following other plugins\u0027 pattern.\n\nChange-Id: Ib58707427c4db3c951f5aafc5ebcb3aa7444b44d\n"
    },
    {
      "commit": "5be80596ca134198737d9e5825e3af65cfd51c8f",
      "tree": "cac3de3980b290438f736bd96914798d8616aaa3",
      "parents": [
        "10fd0576f3c9a1944f019e659303b030b2d7b8e4"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri Apr 15 22:06:00 2022 +0200"
      },
      "committer": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Fri Apr 15 22:12:37 2022 +0200"
      },
      "message": "Change list() type to match that of super in test\n\nJGitHealthCheckTest failed to compile due to the super\u0027s list() return\ntype having changed type. Update the test\u0027s instance to match the\nupdated type.\n\nBug: Issue 15848\nChange-Id: Ib9baab3066625edd24faba7be6dd7dd705554149\n"
    },
    {
      "commit": "10fd0576f3c9a1944f019e659303b030b2d7b8e4",
      "tree": "48f09a21ea7f47e67ad0d61bd812658b59a08160",
      "parents": [
        "4294ad0b803c4e4ff6da4e72fe6f6c0df93cbd72"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Thu Nov 04 21:44:06 2021 +0100"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Thu Nov 04 20:55:34 2021 +0000"
      },
      "message": "Use new APIs introduced in stable-3.5\n\n* AuthRequest introduced a Factory\n* GitRepositoryManager requires the implementation of\n\"Status getRepositoryStatus(Project.NameKey name)\"\n\nBug: Issue 15232\nChange-Id: I78987d61b2acf929da9c8f3ef31413475cbcdde5\n"
    },
    {
      "commit": "4294ad0b803c4e4ff6da4e72fe6f6c0df93cbd72",
      "tree": "fea79711890ed29d16fcb63ce0afaf509b391f77",
      "parents": [
        "96adb21a73cade61d163261152f1346d2b07f766",
        "661b1d0055d39c69ec125da9189eef638cdc4b24"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jul 20 07:34:06 2021 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jul 20 07:34:06 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Follow up to: \"Fix BlockedThreadsCheck failing with un-blocked...\"\n\nChange-Id: Idda21fba7713fc62b23b9ec7330a7f8f8f1e21d5\n"
    },
    {
      "commit": "661b1d0055d39c69ec125da9189eef638cdc4b24",
      "tree": "fea79711890ed29d16fcb63ce0afaf509b391f77",
      "parents": [
        "825e28b7e13e1918cc5bf05728ad867227d4dcaf",
        "2354250863055c92704f1ebd8136f2d440fb9a6b"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jul 20 07:32:53 2021 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jul 20 07:32:53 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Follow up to: \"Fix BlockedThreadsCheck failing with un-blocked...\"\n\nChange-Id: I94401e6090c69296a88e86489659419dfa997b4a\n"
    },
    {
      "commit": "2354250863055c92704f1ebd8136f2d440fb9a6b",
      "tree": "fea79711890ed29d16fcb63ce0afaf509b391f77",
      "parents": [
        "0128fec9e64b74c80247c4a9986dc87bb5f89764",
        "8e0f199df5d1616fcbd8c1590bafc1d86cd0836d"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jul 20 07:32:00 2021 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jul 20 07:32:00 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Follow up to: \"Fix BlockedThreadsCheck failing with un-blocked...\"\n\nChange-Id: Ia7a6ff9368b6dcfac336ad4e2868d3383b5b244c\n"
    },
    {
      "commit": "8e0f199df5d1616fcbd8c1590bafc1d86cd0836d",
      "tree": "c092bb7d2eebff7bd73f660ab77430e9da862322",
      "parents": [
        "6b0a1f60ab27faecaf9f58b65ca42f12703217e2"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Jul 12 17:58:14 2021 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Sat Jul 17 12:00:47 2021 +0200"
      },
      "message": "Follow up to: \"Fix BlockedThreadsCheck failing with un-blocked...\"\n\nThe original change fixes the issue but at the expence of performance\n(configuration of blocked threads check is read upon each call to\nhelthcheck endpint). This patch improves the performance by\nmemoizing the configuration only (obtaining new list of qualifiers\nfor each call to healthcheck endpoint).\n\nBug: Issue 14736\nChange-Id: Ia794f17f33f198562027cb3607ad55ad0da06ffd\n"
    },
    {
      "commit": "96adb21a73cade61d163261152f1346d2b07f766",
      "tree": "10c6b199f78df10ae439b02fd72d0aab192545f1",
      "parents": [
        "c09ea4baf105f93877780acd3372636846dcac70",
        "825e28b7e13e1918cc5bf05728ad867227d4dcaf"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 06 11:09:01 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 06 11:09:01 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Fix BlockedThreadsCheck failing with un-blocked threads\n  Use Guice injector for BlockedThreadsCheck in tests\n\nChange-Id: Ib894830fbfa10720d968415ccf6bbfc95f7f8955\n"
    },
    {
      "commit": "825e28b7e13e1918cc5bf05728ad867227d4dcaf",
      "tree": "10c6b199f78df10ae439b02fd72d0aab192545f1",
      "parents": [
        "d3387e44ca37381fa1e429a432de21eb6e853e0e",
        "0128fec9e64b74c80247c4a9986dc87bb5f89764"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 06 11:08:36 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 06 11:08:36 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Fix BlockedThreadsCheck failing with un-blocked threads\n  Use Guice injector for BlockedThreadsCheck in tests\n\nChange-Id: I7310b46022042327f24b8fdbbff05596d0650214\n"
    },
    {
      "commit": "0128fec9e64b74c80247c4a9986dc87bb5f89764",
      "tree": "10c6b199f78df10ae439b02fd72d0aab192545f1",
      "parents": [
        "771904bf39226698717796d2a3625db72ea61d88",
        "6b0a1f60ab27faecaf9f58b65ca42f12703217e2"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 06 11:07:58 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jul 06 11:07:58 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Fix BlockedThreadsCheck failing with un-blocked threads\n  Use Guice injector for BlockedThreadsCheck in tests\n\nChange-Id: I78e1622bb79c6191802e5622b6185b3cdb94fa50\n"
    },
    {
      "commit": "6b0a1f60ab27faecaf9f58b65ca42f12703217e2",
      "tree": "0e372d50da624886357d94dd4edc9f7deae4349f",
      "parents": [
        "89dec3e3c2fd7dbdd55afc465838cef148a0d32f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 02 21:49:24 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 02 21:53:30 2021 +0100"
      },
      "message": "Fix BlockedThreadsCheck failing with un-blocked threads\n\nThe introduction of BlockedThreadsCheck introduced a P0\nregression because of the accumulatio of the counter of\nblocked threads caused any Gerrit instance to eventually\nfail once the counter of blocked threads reached the 50%\nof the total number.\n\nRemove the @Singleton annotation misplaced on the check\nand make sure that similar issues aren\u0027t passed unnoticed\nby using the actual Guice injection for creating the\nBlockedThreadsCheck in tests rather than calling the\nconstructor directly.\n\nBug: Issue 14736\nChange-Id: I430a7a576f8c41594c59d71cced6d43d7acf985a\n"
    },
    {
      "commit": "89dec3e3c2fd7dbdd55afc465838cef148a0d32f",
      "tree": "b865aaaad924ba47cb1155f8242b1c0132f9a741",
      "parents": [
        "b141ef4c41ced4b4a631b6c3dede5aace33638f9"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 02 21:21:47 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Jul 02 21:32:59 2021 +0100"
      },
      "message": "Use Guice injector for BlockedThreadsCheck in tests\n\nThe creation of the BlockedThreadsCheck was never tested\nand could have led to severe issues left untested and unnoticed\nlike the @Singleton annotation on the BlockedThreadsCheck\nmaking the whole check value stateful.\n\nChange-Id: Ibd0ebf86c4524e3f8fb232bb4c97d799c0d0ae80\n"
    },
    {
      "commit": "c09ea4baf105f93877780acd3372636846dcac70",
      "tree": "3fca2165205e58dbceceac2bd1086c36e779d3f8",
      "parents": [
        "a1b8d6c9282bf7636a5841952c98333e55286a50",
        "d3387e44ca37381fa1e429a432de21eb6e853e0e"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jun 08 08:24:15 2021 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Tue Jun 08 08:24:15 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Add blocked threads check\n\nChange-Id: I4dbe09c3ba43ea1ee85c73fd2e8ff5b9fb115536\n"
    },
    {
      "commit": "d3387e44ca37381fa1e429a432de21eb6e853e0e",
      "tree": "3fca2165205e58dbceceac2bd1086c36e779d3f8",
      "parents": [
        "1b369b55003a4d005e598294642ff6ab2175116e",
        "771904bf39226698717796d2a3625db72ea61d88"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Jun 07 10:03:47 2021 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Jun 07 10:03:47 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Add blocked threads check\n\nChange-Id: Icf3fca96bd1df7817c547243dd7603da18e3cb77\n"
    },
    {
      "commit": "771904bf39226698717796d2a3625db72ea61d88",
      "tree": "3fca2165205e58dbceceac2bd1086c36e779d3f8",
      "parents": [
        "4bec1cf1fc8fb52ae0ffd660fde1ea1ae1721632",
        "b141ef4c41ced4b4a631b6c3dede5aace33638f9"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Jun 07 09:29:01 2021 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Mon Jun 07 09:29:01 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Add blocked threads check\n\nChange-Id: I77b83c6d54191bbc32e0e633dae43381ef38b871\n"
    },
    {
      "commit": "b141ef4c41ced4b4a631b6c3dede5aace33638f9",
      "tree": "3a981899f47b93d2d1baecdd69d09d3faa5a49f1",
      "parents": [
        "52211e251f2a04056a12f8bfa6ffc4d294a70ad3"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed Apr 28 22:19:58 2021 +0200"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Fri May 28 16:20:39 2021 +0200"
      },
      "message": "Add blocked threads check\n\nIntroduce check that detects the blocked threads (enabled by default).\nIn case when it reaches above the configured percent of all threads (by\ndefault 50%) check fails and instance is considered unhealthy.\n\nCheck can:\n* be disabled with \u0027healthcheck.blockedthreads.enabled \u003d false\u0027\n* have threshold reconfigured with \u0027healthcheck.blocked.threshold\u003dXX\u0027\n\nNote that one can fine tune the check to certain group of threads by\nconfiguring threshold for threads with name starting wiht prefix.\nFor instance in case when Gerrit instance should be considered\nunhealthy when 33% of SSH-Interactive-Worker threads are \u0027BLOCKED\u0027\none can configure it with\n\n  [healthcheck \"blockedthreads\"]\n    threshold \u003d SSH-Interactive-Threads\u003d33\n\nNote that multiple checks for multiple thread group could be\nconfigured (for details with examples see the config.md file).\n\nBug: Issue 14401\nChange-Id: I7d0c4b70decf49465a7318abe4a555cde7318833\n"
    },
    {
      "commit": "a1b8d6c9282bf7636a5841952c98333e55286a50",
      "tree": "d39548a80af7c233f2a26f6222db499aa05b2be1",
      "parents": [
        "81c1e89fca5ccb2fc63d8ed9f981696bc4851bd3",
        "1b369b55003a4d005e598294642ff6ab2175116e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 23:52:40 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 23:52:40 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Use InternalUser for checking projects list\n  Add test for setups without AnonymousRead\n  Remove Eclipse warnings\n\nChange-Id: I0b6532194d5f818c694458f86fde22c5fef3fced\n"
    },
    {
      "commit": "1b369b55003a4d005e598294642ff6ab2175116e",
      "tree": "d39548a80af7c233f2a26f6222db499aa05b2be1",
      "parents": [
        "ebaf30c6fb8ae93b29082f786ee0c76615937880",
        "4bec1cf1fc8fb52ae0ffd660fde1ea1ae1721632"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 23:47:49 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 23:47:54 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Use InternalUser for checking projects list\n  Add test for setups without AnonymousRead\n  Remove Eclipse warnings\n\nChange-Id: I48b8c780231562767eb4d49ff742b7fbc1a68bca\n"
    },
    {
      "commit": "4bec1cf1fc8fb52ae0ffd660fde1ea1ae1721632",
      "tree": "d39548a80af7c233f2a26f6222db499aa05b2be1",
      "parents": [
        "7728f346dcb047b1e1c9853450290ccd2d139f4a",
        "52211e251f2a04056a12f8bfa6ffc4d294a70ad3"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 23:46:40 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 23:46:54 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Use InternalUser for checking projects list\n  Add test for setups without AnonymousRead\n  Remove Eclipse warnings\n\nChange-Id: I6327dfd09a545cef91765124c257a5afc89224bf\n"
    },
    {
      "commit": "52211e251f2a04056a12f8bfa6ffc4d294a70ad3",
      "tree": "4b9f9d4f830fe7b4ead785109bf62c850b8d4303",
      "parents": [
        "59daaf1d257d6a2d0aec7841e54213977baf46b2"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 23:42:31 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 23:44:33 2021 +0100"
      },
      "message": "Use InternalUser for checking projects list\n\nIntroduce an one-off context for using the internal user\nof the plugin for checking the healthiness of the projects\nlist.\n\nChange-Id: I4c77cffac6094b233d3bc69d5875e5998e8e5dea\n"
    },
    {
      "commit": "59daaf1d257d6a2d0aec7841e54213977baf46b2",
      "tree": "85fdc13e01cb65a92c634eaaaf9f75fc6a687acb",
      "parents": [
        "d5beedea79d2cf812aa7e74d507d4f4aa6091de0"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 22:29:25 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 21:40:54 2021 +0000"
      },
      "message": "Add test for setups without AnonymousRead\n\nMake sure that healthcheck works also for setups where\nthe anonymous read is blocked.\n\nChange-Id: I1fbb0d3341164c7c710325cbd4e1cde3859dc3f5\n"
    },
    {
      "commit": "d5beedea79d2cf812aa7e74d507d4f4aa6091de0",
      "tree": "d59fe9ed9c33f59290c2ae0e17e6c16b665b5808",
      "parents": [
        "31d1fc8a71d3f843db0a2ba29bbb8d043aa7d21a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 22:18:49 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Apr 26 22:19:18 2021 +0100"
      },
      "message": "Remove Eclipse warnings\n\nRemove unused variables and unnecessary casts as\nreported by Eclipse.\n\nChange-Id: I8bd662e607b62cda2b375ecec49fada512c99758\n"
    },
    {
      "commit": "81c1e89fca5ccb2fc63d8ed9f981696bc4851bd3",
      "tree": "ac3da9c10f5b752dd8f72712d5dcaf7443f73608",
      "parents": [
        "50dec79ecafc7f6566230278f9da8111cd8e7e61",
        "ebaf30c6fb8ae93b29082f786ee0c76615937880"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Apr 23 01:21:18 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Apr 23 01:21:30 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Plugin reports wrong number of failures\n\nChange-Id: I871847a6856ee85a63aba801fcd1788ab8209696\n"
    },
    {
      "commit": "ebaf30c6fb8ae93b29082f786ee0c76615937880",
      "tree": "ac3da9c10f5b752dd8f72712d5dcaf7443f73608",
      "parents": [
        "383ddf0b58755c8d9dd46340f01b1bef7463eff1",
        "7728f346dcb047b1e1c9853450290ccd2d139f4a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Apr 23 01:09:42 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Apr 23 01:09:42 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Plugin reports wrong number of failures\n\nChange-Id: Ifdb27b3b3977f430717cfdb03c93cc75489f280a\n"
    },
    {
      "commit": "7728f346dcb047b1e1c9853450290ccd2d139f4a",
      "tree": "ac3da9c10f5b752dd8f72712d5dcaf7443f73608",
      "parents": [
        "fa7233aa9c3d6fbdb05bcf7d3c54a22101b307c5",
        "31d1fc8a71d3f843db0a2ba29bbb8d043aa7d21a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Apr 23 00:59:32 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Apr 23 00:59:32 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Plugin reports wrong number of failures\n\nChange-Id: I79588326d2ae104bce124e8f1f0d4cf75f54d846\n"
    },
    {
      "commit": "31d1fc8a71d3f843db0a2ba29bbb8d043aa7d21a",
      "tree": "31fcf3ca4500f7ebf09029a618148de09acdae0f",
      "parents": [
        "188140328dbf1a98159b6531b7fad77df32490fe"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Apr 14 15:18:39 2021 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Apr 21 12:48:25 2021 +0200"
      },
      "message": "Plugin reports wrong number of failures\n\nThe increment of the metric failure should happen\n*when* a new failure is happening and NOT when the metric\nis read from a callback.\n\nThe metrics are now published as soon as a single check is performed,\ni.e.: a doCheck() for a *Check class runs.\nThe metric collector system will just scrape them when needed without\nretriggering any calculation of the metrics.\n\nThe metrics are now injected in the AbstractHealthCheck, which\ntakes care of updating them whenever a check runs.\n\nAs part of this change the latency is now represented as a Timer, rather\nthan a Gauge as it was wrongly done before.\n\nBug: Issue 14385\nChange-Id: I5f149f6893289c2874d125a9c04862d53cacd19b\n"
    },
    {
      "commit": "50dec79ecafc7f6566230278f9da8111cd8e7e61",
      "tree": "786ac209272f52523b2b8ced6f3b61d9def10aa6",
      "parents": [
        "65dff0e69f8cccedfe59547b24f12bad54f68787",
        "383ddf0b58755c8d9dd46340f01b1bef7463eff1"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Apr 14 01:00:21 2021 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Apr 14 01:00:21 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Make GlobalHealthCheck reentrant\n\nChange-Id: I5d09b238578af5d89beb5e5c25b6c26a43955e3a\n"
    },
    {
      "commit": "383ddf0b58755c8d9dd46340f01b1bef7463eff1",
      "tree": "786ac209272f52523b2b8ced6f3b61d9def10aa6",
      "parents": [
        "86b17a20bc53d4d901e27a735199ab676de0e6c6",
        "fa7233aa9c3d6fbdb05bcf7d3c54a22101b307c5"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Apr 14 00:58:53 2021 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Apr 14 00:58:53 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Make GlobalHealthCheck reentrant\n\nChange-Id: Idbb21bc86bf2e0bfc021f80f1a77a4c43b512409\n"
    },
    {
      "commit": "fa7233aa9c3d6fbdb05bcf7d3c54a22101b307c5",
      "tree": "786ac209272f52523b2b8ced6f3b61d9def10aa6",
      "parents": [
        "0f72e1cd8f3496507dd073a510ddcd2c367c6900",
        "188140328dbf1a98159b6531b7fad77df32490fe"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Apr 14 00:57:56 2021 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Wed Apr 14 00:57:56 2021 +0200"
      },
      "message": "Merge branch \u0027stable-3.1\u0027 into stable-3.2\n\n* stable-3.1:\n  Make GlobalHealthCheck reentrant\n\nChange-Id: I165df05443af762402efdb668a613c971963c790\n"
    },
    {
      "commit": "188140328dbf1a98159b6531b7fad77df32490fe",
      "tree": "3234b0551061f3d8858a62284adfb9601dd9996f",
      "parents": [
        "c51d7ab7ba137b9a663b4b0dfdb033f533224063"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 13 22:30:03 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 13 22:36:19 2021 +0100"
      },
      "message": "Make GlobalHealthCheck reentrant\n\nThe GlobalHealthCheck is called by multiple threads\nand should never be stored in the instance variable\nof a singleton.\n\nThe only exception is for the shallow storage of the\nlatest result that is invoked by the metrics collector,\nwhich is well known to be subject to erasure due\nto concurrency and may not be 100% accurate.\n\nChange-Id: I17b3913274d83cf29a51a521a26b3c50d60b4658\n"
    },
    {
      "commit": "65dff0e69f8cccedfe59547b24f12bad54f68787",
      "tree": "53daa32488d271c9a9a5b15896eb6d407ce3b76e",
      "parents": [
        "17ff40c540a2a6ce436249c918280ad59744b922",
        "86b17a20bc53d4d901e27a735199ab676de0e6c6"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 13 21:19:39 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 13 21:19:39 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.3\u0027\n\n* stable-3.3:\n  Missing global metric\n\nChange-Id: I0eed5d776675ea7409657d1e5082019d0f48b8e9\n"
    },
    {
      "commit": "86b17a20bc53d4d901e27a735199ab676de0e6c6",
      "tree": "53daa32488d271c9a9a5b15896eb6d407ce3b76e",
      "parents": [
        "afb587415495ad4eb50e0ab494a0555f9b8944c6",
        "0f72e1cd8f3496507dd073a510ddcd2c367c6900"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 13 21:18:49 2021 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Apr 13 21:18:53 2021 +0100"
      },
      "message": "Merge branch \u0027stable-3.2\u0027 into stable-3.3\n\n* stable-3.2:\n  Missing global metric\n\nChange-Id: Ib05c3f40b41eee490b748b8c929f7192d1b5adfb\n"
    }
  ],
  "next": "0f72e1cd8f3496507dd073a510ddcd2c367c6900"
}
