Skip to content

Commit

Permalink
treat ClusterVersionSet as 3.5 version
Browse files Browse the repository at this point in the history
Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com>
  • Loading branch information
ahrtr committed Jan 23, 2025
1 parent 32cfd45 commit aef91b8
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 8 deletions.
7 changes: 3 additions & 4 deletions server/storage/schema/schema_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,15 +182,14 @@ func TestMigrate(t *testing.T) {
expectVersion: nil,
},
{
name: "Downgrading v3.6 to v3.5 fails if there are newer WAL entries",
name: "Downgrading v3.6 to v3.5 works even if there is ClusterVersionSetRequest WAL entries with 3.6 clusterVersion",
version: version.V3_6,
targetVersion: version.V3_5,
walEntries: []etcdserverpb.InternalRaftRequest{
{ClusterVersionSet: &membershippb.ClusterVersionSetRequest{Ver: "3.6.0"}},
},
expectVersion: &version.V3_6,
expectError: true,
expectErrorMsg: "cannot downgrade storage, WAL contains newer entries",
expectVersion: nil, // 3.5 doesn't have field `storageVersion`, so it should be nil.
expectError: false,
},
{
name: "Downgrading v3.5 to v3.4 is not supported as schema was introduced in v3.6",
Expand Down
5 changes: 3 additions & 2 deletions server/storage/wal/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,12 @@ func visitEntryData(entryType raftpb.EntryType, data []byte, visitor Visitor) er
}
msg = proto.MessageReflect(&raftReq)
if raftReq.ClusterVersionSet != nil {
ver, err := semver.NewVersion(raftReq.ClusterVersionSet.Ver)
_, err := semver.NewVersion(raftReq.ClusterVersionSet.Ver)
if err != nil {
return err
}
err = visitor(msg.Descriptor().FullName(), ver)
// ClusterVersionSet was introduced in 3.5.
err = visitor(msg.Descriptor().FullName(), &version.V3_5)
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion server/storage/wal/version_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ func TestEtcdVersionFromEntry(t *testing.T) {
Type: raftpb.EntryNormal,
Data: clusterVersionV3_6Data,
},
expect: &version.V3_6,
expect: &version.V3_5,
},
{
name: "Using ConfigChange implies v3.0",
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/utl_wal_version_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ func TestEtcdVersionFromWAL(t *testing.T) {
if err != nil {
t.Fatal(err)
}
assert.Equal(t, &semver.Version{Major: 3, Minor: 6}, walVersion.MinimalEtcdVersion())
assert.Equal(t, &semver.Version{Major: 3, Minor: 5}, walVersion.MinimalEtcdVersion())
}

func waitForClusterVersionReady(srv *embed.Etcd) error {
Expand Down

0 comments on commit aef91b8

Please sign in to comment.