-
Notifications
You must be signed in to change notification settings - Fork 9.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question: promote learning member on a 1 size cluster #11633
Comments
At first sight looks like this case would be solved by changing etcd/etcdserver/api/membership/cluster.go Line 660 in 3cf2f69
IsReadyToPromoteMember thinks it has two voting members, when there is only one in reality.
I might be missing many important nuances here, though. |
Looks like a bug to me. A cluster with 1 started voting member and 1 started learner member should allow promoting of that learner member. |
I'll open a PR. |
cc @WIZARD-CXY |
@ereslibre Sounds great! I am thinking it will be helpful if we could have a unit test for that function, something similar to
|
When promoting a learner member we should not count already a voting member, but take only into account the number of existing voting members and their current status (started, unstarted) when taking the decision whether a learner member can be promoted. Before this change, it was impossible to grow from a quorum N to a N+1 through promoting a learning member. Fixes: etcd-io#11633
When promoting a learner member we should not count already a voting member, but take only into account the number of existing voting members and their current status (started, unstarted) when taking the decision whether a learner member can be promoted. Before this change, it was impossible to grow from a quorum N to a N+1 through promoting a learning member. Fixes: etcd-io#11633
etcd version: 3.4.3
Given a cluster setup with a single member,
I added a new learner member, and started it.
The member list afterwards adding the learner member, and after having started it.
I see that if I now try to promote it to a voting member, I get the following error:
This error looks like it's coming from
IsReadyToPromoteMember
, called when the strict reconfig check is enabled.This is the error present on the only
etcd
instance with voting rights during that time:I can disable the strict reconfig check, but I'm wondering if even with strict reconfiguration this should not be possible at all by design, or if it's a bug. I'm following the recommendation of only joining one learner node at a time, but seems impossible to succeed if you start with a single instance cluster.
Thank you!
The text was updated successfully, but these errors were encountered: