{"action":"closed","issue":{"url":"https://api.github.com/repos/hashicorp/consul/issues/3003","repository_url":"https://api.github.com/repos/hashicorp/consul","labels_url":"https://api.github.com/repos/hashicorp/consul/issues/3003/labels{/name}","comments_url":"https://api.github.com/repos/hashicorp/consul/issues/3003/comments","events_url":"https://api.github.com/repos/hashicorp/consul/issues/3003/events","html_url":"https://github.com/hashicorp/consul/issues/3003","id":226158129,"number":3003,"title":"Recovery via peers.json doesn't work with Raft protocol version 3","user":{"login":"slackpad","id":673509,"avatar_url":"https://avatars3.githubusercontent.com/u/673509?v=3","gravatar_id":"","url":"https://api.github.com/users/slackpad","html_url":"https://github.com/slackpad","followers_url":"https://api.github.com/users/slackpad/followers","following_url":"https://api.github.com/users/slackpad/following{/other_user}","gists_url":"https://api.github.com/users/slackpad/gists{/gist_id}","starred_url":"https://api.github.com/users/slackpad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/slackpad/subscriptions","organizations_url":"https://api.github.com/users/slackpad/orgs","repos_url":"https://api.github.com/users/slackpad/repos","events_url":"https://api.github.com/users/slackpad/events{/privacy}","received_events_url":"https://api.github.com/users/slackpad/received_events","type":"User","site_admin":false},"labels":[{"id":64219391,"url":"https://api.github.com/repos/hashicorp/consul/labels/bug","name":"bug","color":"fc2929","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-05-04T01:37:17Z","updated_at":"2017-05-04T21:31:22Z","closed_at":"2017-05-04T21:31:22Z","body":"In #1580 we realized that the [peers.json recovery process](https://www.consul.io/docs/guides/outage.html#manual-recovery-using-peers-json) doesn't work when servers are running with the [Raft protocol](https://www.consul.io/docs/agent/options.html#_raft_protocol) set to 3 because there's no way to set the UUID of the server. In Consul 0.8.x, the Raft protocol defaults to 2, so this only affects users who are enabling the newer protocol to get advanced [Autopilot](https://www.consul.io/docs/guides/autopilot.html) features.\r\n\r\nNeed to verify this but it *should* be possible to recover with peers.json by also setting the Raft protocol back to 2 on all servers during recovery, but this isn't ideal. We need to come up with a solution to recover with UUIDs.\r\n\r\nSince peers.json is just a list of strings, we could support something like `uuid/ip:port` for the format, so we can support the same basic form, and default to `uuid` to `ip:port` if it's not supplied (that's what the parser does today). Consul would need to perform some checks when restoring to make this more robust with respect to the current protocol version. We'd want to insist on the full form with `uuid` supplied if protocol version 3 was in use."}}
{"actor":{"display_login":"slackpad"}}