Merge pull request #19637 from ahrtr/upgrade_refactor_20250321
minor refactor DowngradeUpgradeMembersByID to not block on waiting fo…
This commit is contained in:
commit
5e272463f7
@ -25,6 +25,7 @@ import (
|
|||||||
"github.com/coreos/go-semver/semver"
|
"github.com/coreos/go-semver/semver"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
"golang.org/x/sync/errgroup"
|
||||||
|
|
||||||
pb "go.etcd.io/etcd/api/v3/etcdserverpb"
|
pb "go.etcd.io/etcd/api/v3/etcdserverpb"
|
||||||
"go.etcd.io/etcd/api/v3/version"
|
"go.etcd.io/etcd/api/v3/version"
|
||||||
@ -145,6 +146,8 @@ func DowngradeUpgradeMembersByID(t *testing.T, lg *zap.Logger, clus *EtcdProcess
|
|||||||
opString = "downgrading"
|
opString = "downgrading"
|
||||||
newExecPath = BinPath.EtcdLastRelease
|
newExecPath = BinPath.EtcdLastRelease
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g := new(errgroup.Group)
|
||||||
for _, memberID := range membersToChange {
|
for _, memberID := range membersToChange {
|
||||||
member := clus.Procs[memberID]
|
member := clus.Procs[memberID]
|
||||||
if member.Config().ExecPath == newExecPath {
|
if member.Config().ExecPath == newExecPath {
|
||||||
@ -156,10 +159,15 @@ func DowngradeUpgradeMembersByID(t *testing.T, lg *zap.Logger, clus *EtcdProcess
|
|||||||
}
|
}
|
||||||
member.Config().ExecPath = newExecPath
|
member.Config().ExecPath = newExecPath
|
||||||
lg.Info("Restarting member", zap.String("member", member.Config().Name))
|
lg.Info("Restarting member", zap.String("member", member.Config().Name))
|
||||||
err := member.Start(t.Context())
|
// We shouldn't block on waiting for the member to be ready,
|
||||||
if err != nil {
|
// otherwise it will be blocked forever if other members are
|
||||||
return err
|
// not started yet.
|
||||||
}
|
g.Go(func() error {
|
||||||
|
return member.Start(t.Context())
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if err := g.Wait(); err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Log("Waiting health interval to make sure the leader propagates version to new processes")
|
t.Log("Waiting health interval to make sure the leader propagates version to new processes")
|
||||||
|
Loading…
Reference in New Issue
Block a user