Add check to see if promote worked within the retry loop

This commit is contained in:
bconry 2025-03-18 20:18:12 +00:00 committed by Lubomir I. Ivanov
parent f900f01725
commit cb130042b1

View File

@ -576,6 +576,15 @@ func (c *Client) MemberPromote(learnerID uint64) error {
ctx, cancel := context.WithTimeout(context.Background(), etcdTimeout)
defer cancel()
isLearner, err := c.isLearner(learnerID)
if err != nil {
return false, err
}
if !isLearner {
klog.V(1).Infof("[etcd] Member %s was already promoted.", strconv.FormatUint(learnerID, 16))
return true, nil
}
_, err = cli.MemberPromote(ctx, learnerID)
if err == nil {
klog.V(1).Infof("[etcd] The learner was promoted as a voting member: %s", strconv.FormatUint(learnerID, 16))