)]}'
{
  "commit": "d5cace605ffd48f89db25456b260c550621b8b4c",
  "tree": "3a020de589b3931d069a29deebddbb47e1f41d7f",
  "parents": [
    "961a7cc7f4794833f821a368b68d12ec70353d6c"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@monogon.tech",
    "time": "Thu Jan 25 14:01:54 2024 +0100"
  },
  "committer": {
    "name": "Serge Bazanski",
    "email": "serge@monogon.tech",
    "time": "Thu Jan 25 17:43:22 2024 +0000"
  },
  "message": "metropolis/node/curator: restart listener on status changes\n\nThis change ensures that a Curator\u0027s gRPC listener restart not only when\nit switches from leader to follower (and vice versa), but also when the\ncurator instance keeps being a leader/follower but the leadership status\nchanges in an important way.\n\nRestarting the listener is important when the Curator is a re-elected\nleader, as otherwise the listener will continue running with the old\nleadership data which includes the old leadership election key/revision,\nsubsequently failing any leadership transactions when serving gRPC\nrequests.\n\nSimilarly, we need to restart the follower listener when the we the\nleader changes to some other node, otherwise we end up serving old\nleadership data in GetCurrentLeader.\n\nAn alternative fix would be to move the leadership status to an Event\nvalue that gets updated and passed through to the listeners. This would\navoid somewhat unnecessary listener restarts on leadership changes, but\nthis will do for now.\n\nThis should fix issue #276 and perhaps some related flakiness. I\u0027ll try\nto write a test for this on top of this CR, but this will require a new\nkind of Curator test which we don\u0027t have yet.\n\nChange-Id: I20ef147adeb0c976b904ef55dbadb9b461111e94\nReviewed-on: https://review.monogon.dev/c/monogon/+/2722\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bfaa90d5eb4fadd421a721d4a39e7934dcea91f3",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/curator.go",
      "new_id": "e88493a5a04f855ac1d44e3479cec14bf4d5853e",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/curator.go"
    },
    {
      "type": "modify",
      "old_id": "77df6841f55b999a9289bb5122cda542c021bd59",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/listener.go",
      "new_id": "46397296c7898c8aca71e53b1ec9072220823238",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/listener.go"
    }
  ]
}
