From 3de5e221a8595cfd63e836a25a725d1aeba97dfe Mon Sep 17 00:00:00 2001 From: Marek Siarkowicz Date: Sun, 13 Feb 2022 21:20:44 +0100 Subject: [PATCH] tests: Fix cluster version and downgrade request timeout Returning nil means that raft.Trigger was not called, causing member to wait infinitly for response for response on raft request. --- server/etcdserver/apply.go | 6 +++--- server/etcdserver/version/version.go | 2 +- tests/e2e/cluster_downgrade_test.go | 13 +++++++------ 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/server/etcdserver/apply.go b/server/etcdserver/apply.go index ca7930696..f91f859f5 100644 --- a/server/etcdserver/apply.go +++ b/server/etcdserver/apply.go @@ -148,15 +148,15 @@ func (a *applierV3backend) Apply(r *pb.InternalRaftRequest, shouldApplyV3 member case r.ClusterVersionSet != nil: // Implemented in 3.5.x op = "ClusterVersionSet" a.s.applyV3Internal.ClusterVersionSet(r.ClusterVersionSet, shouldApplyV3) - return nil + return ar case r.ClusterMemberAttrSet != nil: op = "ClusterMemberAttrSet" // Implemented in 3.5.x a.s.applyV3Internal.ClusterMemberAttrSet(r.ClusterMemberAttrSet, shouldApplyV3) - return nil + return ar case r.DowngradeInfoSet != nil: op = "DowngradeInfoSet" // Implemented in 3.5.x a.s.applyV3Internal.DowngradeInfoSet(r.DowngradeInfoSet, shouldApplyV3) - return nil + return ar } if !shouldApplyV3 { diff --git a/server/etcdserver/version/version.go b/server/etcdserver/version/version.go index eb9a370c1..0a2f99a1f 100644 --- a/server/etcdserver/version/version.go +++ b/server/etcdserver/version/version.go @@ -64,7 +64,7 @@ func (m *Manager) DowngradeEnable(ctx context.Context, targetVersion *semver.Ver if err != nil { return err } - return m.s.DowngradeEnable(context.Background(), targetVersion) + return m.s.DowngradeEnable(ctx, targetVersion) } // DowngradeCancel cancels ongoing downgrade process. diff --git a/tests/e2e/cluster_downgrade_test.go b/tests/e2e/cluster_downgrade_test.go index 4769c4878..655067cea 100644 --- a/tests/e2e/cluster_downgrade_test.go +++ b/tests/e2e/cluster_downgrade_test.go @@ -46,17 +46,17 @@ func TestDowngradeUpgrade(t *testing.T) { validateVersion(t, epc, version.Versions{Cluster: currentVersionStr, Server: currentVersionStr}) downgradeEnable(t, epc, lastVersion) + expectLog(t, epc, "The server is ready to downgrade") validateVersion(t, epc, version.Versions{Cluster: lastVersionStr, Server: currentVersionStr}) stopEtcd(t, epc) epc = startEtcd(t, lastReleaseBinary, dataDirPath) - validateVersion(t, epc, version.Versions{Cluster: lastVersionStr, Server: lastVersionStr}) expectLog(t, epc, "the cluster has been downgraded") + validateVersion(t, epc, version.Versions{Cluster: lastVersionStr, Server: lastVersionStr}) stopEtcd(t, epc) epc = startEtcd(t, currentEtcdBinary, dataDirPath) - // TODO: Verify cluster version after upgrade when we fix cluster version set timeout - validateVersion(t, epc, version.Versions{Server: currentVersionStr}) + validateVersion(t, epc, version.Versions{Cluster: currentVersionStr, Server: currentVersionStr}) } func startEtcd(t *testing.T, execPath, dataDirPath string) *e2e.EtcdProcessCluster { @@ -100,11 +100,12 @@ func downgradeEnable(t *testing.T, epc *e2e.EtcdProcessCluster, ver semver.Versi } defer c.Close() ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) - // TODO: Fix request always timing out even thou it succeeds - c.Downgrade(ctx, 1, ver.String()) + _, err = c.Downgrade(ctx, 1, ver.String()) + if err != nil { + t.Fatal(err) + } cancel() - expectLog(t, epc, "The server is ready to downgrade") } func stopEtcd(t *testing.T, epc *e2e.EtcdProcessCluster) {