From 2830237e33443f3d49cd8426981cd89971cd7d6a Mon Sep 17 00:00:00 2001 From: Benjamin Wang <benjamin.ahrtr@gmail.com> Date: Wed, 18 Dec 2024 15:03:56 +0000 Subject: [PATCH] Add more info in the error message in downgrade detection Signed-off-by: Benjamin Wang <benjamin.ahrtr@gmail.com> --- server/storage/schema/schema.go | 5 ++++- server/storage/schema/schema_test.go | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/server/storage/schema/schema.go b/server/storage/schema/schema.go index b87b73cc831..00a441a3fc0 100644 --- a/server/storage/schema/schema.go +++ b/server/storage/schema/schema.go @@ -73,7 +73,10 @@ func UnsafeMigrate(lg *zap.Logger, tx backend.UnsafeReadWriter, w WALVersion, ta if target.LessThan(current) { minVersion := w.MinimalEtcdVersion() if minVersion != nil && target.LessThan(*minVersion) { - return fmt.Errorf("cannot downgrade storage, WAL contains newer entries") + // Occasionally we may see this error during downgrade test due to ClusterVersionSet, + // which is harmless. Please read https://github.com/etcd-io/etcd/pull/13405#discussion_r1890378185. + return fmt.Errorf("cannot downgrade storage, WAL contains newer entries, as the target version (%s) is lower than the version (%s) detected from WAL logs", + target.String(), minVersion.String()) } } return plan.unsafeExecute(lg, tx) diff --git a/server/storage/schema/schema_test.go b/server/storage/schema/schema_test.go index 3d9bd1065c3..e87f0ff5b14 100644 --- a/server/storage/schema/schema_test.go +++ b/server/storage/schema/schema_test.go @@ -15,6 +15,7 @@ package schema import ( + "strings" "testing" "time" @@ -218,7 +219,7 @@ func TestMigrate(t *testing.T) { if (err != nil) != tc.expectError { t.Errorf("Migrate(lg, tx, %q) = %+v, expected error: %v", tc.targetVersion, err, tc.expectError) } - if err != nil && err.Error() != tc.expectErrorMsg { + if err != nil && !strings.Contains(err.Error(), tc.expectErrorMsg) { t.Errorf("Migrate(lg, tx, %q) = %q, expected error message: %q", tc.targetVersion, err, tc.expectErrorMsg) } v := UnsafeReadStorageVersion(b.BatchTx())