)]}'
{
  "commit": "d5538b52d7a8739f7123458c10973be36b27b9ff",
  "tree": "fd718931af36798650ddbf1a8978a94220994e82",
  "parents": [
    "1dcede9600e4c1584da4fbe89128970ea9532860"
  ],
  "author": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Wed Sep 25 13:16:49 2024 +0200"
  },
  "committer": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Thu Sep 26 11:44:09 2024 +0000"
  },
  "message": "m/n/c/consensus: fix startup after removing a cluster node\n\nThe consensus service was waiting for all initial peers to be DNS\nresolvable before starting etcd. However, the list of initial peers is\nnever updated. If an etcd member is removed from the cluster, it is no\nlonger resolvable, but may still be contained in initial peer lists. The\nconsensus service then fails to start, as it is blocked forever waiting\nfor the removed peer to become resolvable.\n\nThe wait for resolvability was added in c1cb37ce9c43 with this\nexplanation:\n\n\u003e It also makes the consensus service wait for DNS resolvability before\n\u003e attempting to join an existing cluster, which makes etcd startup much\n\u003e cleaner (as etcd will itself crash if it cannot immediately resolve\n\u003e its ExistingPeers in startup).\n\nThis does not appear to be needed anymore. I did not observe etcd\ncrashes after removing the wait for resolvability.\n\nI extended the e2e test to test this scenario. After removing the\nconsensus role, it also deletes the node and reboots the remaining\nnodes. I moved these tests to the ha_cold suite, because with encryption\nenabled, we currently cannot reboot a node in a 2-node cluster.\n\nChange-Id: If811c79ea127550fa9ca750014272fa885767c77\nReviewed-on: https://review.monogon.dev/c/monogon/+/3454\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f8861a7ce374422f1d4a57becf9348d0699d30db",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/consensus/consensus.go",
      "new_id": "12913bdfdecfa760f098f96ffddb669a49136382",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/consensus/consensus.go"
    },
    {
      "type": "modify",
      "old_id": "a88d4f712a37c6f2331acb70154b1f97fe1b4dbc",
      "old_mode": 33188,
      "old_path": "metropolis/test/e2e/suites/ha/BUILD.bazel",
      "new_id": "3d9c688234f499a28b3c9a265552db1a06ce33c6",
      "new_mode": 33188,
      "new_path": "metropolis/test/e2e/suites/ha/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "7dcd228dda478debb21a866bb97a7b18f110137d",
      "old_mode": 33188,
      "old_path": "metropolis/test/e2e/suites/ha/run_test.go",
      "new_id": "f2f7cc2528b2ebff370804aed6fc769141b4b5d9",
      "new_mode": 33188,
      "new_path": "metropolis/test/e2e/suites/ha/run_test.go"
    },
    {
      "type": "modify",
      "old_id": "c2cfa0d1d3461a2f6eead3d1adacd1acb60a6329",
      "old_mode": 33188,
      "old_path": "metropolis/test/e2e/suites/ha_cold/BUILD.bazel",
      "new_id": "2ace79883be97c62de2883f36ae95653e26523c8",
      "new_mode": 33188,
      "new_path": "metropolis/test/e2e/suites/ha_cold/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "419d290ba0d73e199632f0b68fce63c457b958c0",
      "old_mode": 33188,
      "old_path": "metropolis/test/e2e/suites/ha_cold/run_test.go",
      "new_id": "6a5c6e8e7f9bb3f08c49de252a50c9e7d1e14d2d",
      "new_mode": 33188,
      "new_path": "metropolis/test/e2e/suites/ha_cold/run_test.go"
    }
  ]
}
