You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Todd Lipcon (JIRA)" <ji...@apache.org> on 2017/10/09 03:18:02 UTC
[jira] [Created] (KUDU-2183) Leaders changing to an unstable/stuck
configuration
Todd Lipcon created KUDU-2183:
---------------------------------
Summary: Leaders changing to an unstable/stuck configuration
Key: KUDU-2183
URL: https://issues.apache.org/jira/browse/KUDU-2183
Project: Kudu
Issue Type: Bug
Components: consensus
Affects Versions: 1.4.0, 1.5.0, 1.6.0
Reporter: Todd Lipcon
We've long had this issue but finally figured out the sequence of events that result in a "stuck" raft configuration after some nodes crash and recover:
Initial state: A(LEADER), B, C
1) B goes down
2) A evicts B, commits config change: new config (A,C)
3) master sends a config change to A to add a new replica D
4) A commits config change to (A,C,D)
5) D is busy or actually not running and therefore doesn't accept the tablet copy request
6) C goes down
(at this point the tablet is not operational because C is down and D has no replica yet)
7) A creates a pending config change to evict C (new config A, D)
(it can't commit the config change because D still has no replica)
8) Tablet server "A" reboots so it is no longer the leader.
At this point even if we bring every server back up, we end up with:
A: has a pending config change from step 7 to (A, D), but can't be elected because D has no replica (thus won't vote until we implement KUDU-2169)
B: comes up and gets its replica deleted because it was evicted
C: comes up with config (A, C, D) but can't be elected because D has no replica and A has a higher OpId
D: has no replica
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)