)]}'
{
  "commit": "e551d31d39e7cf13e7adf2f66941e6989a708c60",
  "tree": "ac04077adea875cf28f8c52f427c72c780b383ae",
  "parents": [
    "5f1a7de2dfb5db1884fcb677a0bd38daf6dd3c97"
  ],
  "author": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Tue Sep 17 12:38:54 2024 +0200"
  },
  "committer": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Thu Sep 19 15:59:14 2024 +0000"
  },
  "message": "third_party/go: patch etcd to fix panic in IsLocalMemberLearner\n\nAfter removing etcd membership from a node, etcd panics in\nIsLocalMemberLearner. Because we currently run etcd embedded in the core\nprocess, this causes the entire machine to reboot.\n\nThe panic happens in the Status RPC handler, which we call to obtain the\ncurrent etcd leader. Stack trace:\n\ngo.etcd.io/etcd/server/v3/etcdserver/api/membership.(*RaftCluster).IsLocalMemberLearner(0xc000879380)\n\texternal/gazelle~~go_deps~io_etcd_go_etcd_server_v3/etcdserver/api/membership/cluster.go:859 +0x26d\ngo.etcd.io/etcd/server/v3/etcdserver.(*EtcdServer).IsLearner(0xc001020c18?)\n\texternal/gazelle~~go_deps~io_etcd_go_etcd_server_v3/etcdserver/server.go:2813 +0x1a\ngo.etcd.io/etcd/server/v3/etcdserver/api/v3rpc.(*maintenanceServer).Status(0xc001020bb0, {0xc001d38638?, 0xc001d38638?}, 0xc001d38690?)\n\texternal/gazelle~~go_deps~io_etcd_go_etcd_server_v3/etcdserver/api/v3rpc/maintenance.go:228 +0x137\ngo.etcd.io/etcd/server/v3/etcdserver/api/v3rpc.(*authMaintenanceServer).Status(0x4a5c340?, {0x3122cf8?, 0xc0026f2f00?}, 0x2d0ebd8?)\n\texternal/gazelle~~go_deps~io_etcd_go_etcd_server_v3/etcdserver/api/v3rpc/maintenance.go:306 +0x25\n\nA node that is no longer a member is also not a learner anymore, so just\nreturn false instead of panicking.\n\nChange-Id: I6fa3d710836852772d5c2bf05dbd63a3d68b1a8b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3436\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "45ba56796e92de5816d8a82ec6bb6ef3e61d801e",
      "old_mode": 33188,
      "old_path": "build/bazel/go.MODULE.bazel",
      "new_id": "969693ad9addd81294a6b1ac2d21a701358ac486",
      "new_mode": 33188,
      "new_path": "build/bazel/go.MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "041554952e03665afe56bb181207887ec7e424f2",
      "new_mode": 33188,
      "new_path": "third_party/go/patches/etcd-fix-islearner-panic.patch"
    }
  ]
}
