Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3.5] backport mix version e2e test. #17531

Merged
merged 1 commit into from
Apr 10, 2024

Conversation

siyuanfoundation
Copy link
Contributor

@siyuanfoundation siyuanfoundation commented Mar 5, 2024

Please read https://github.com/etcd-io/etcd/blob/main/CONTRIBUTING.md#contribution-flow.

Part of #15878 (comment)

Original PR: #14707 and #15013

Slightly different from the tests in main in that we cannot verify a snapshot is sent because there is no snapshot-catchup-entries flag in 3.5.

@siyuanfoundation
Copy link
Contributor Author

/retest

1 similar comment
@siyuanfoundation
Copy link
Contributor Author

/retest

@siyuanfoundation
Copy link
Contributor Author

/retest

@siyuanfoundation siyuanfoundation marked this pull request as ready for review March 6, 2024 06:14
@siyuanfoundation
Copy link
Contributor Author

siyuanfoundation commented Mar 7, 2024

cc @serathius @ahrtr

@ahrtr
Copy link
Member

ahrtr commented Mar 29, 2024

Please link to the original PR next time when you backport any PR.

Copy link
Member

@ahrtr ahrtr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

cc @fuweid @jmhbnz @serathius double check

tests/e2e/etcd_mix_versions_test.go Show resolved Hide resolved
require.NoError(t, err, "failed to start etcd cluster: %v", err)
defer func() {
derr := epc.Close()
require.NoError(t, derr, "failed to close etcd cluster: %v", derr)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

require.NoError(t, epx.Close(), "failed to close etcd cluster") might be cleaner.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If using require.NoError(t, epx.Close(), "failed to close etcd cluster"), we would not know what error is returned.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If epc.Close() is not nil, require.NoError will panic and show us.
Never mind. Just share that we don't need to pass error value in message.

tests/framework/e2e/config.go Outdated Show resolved Hide resolved
tests/e2e/etcd_mix_versions_test.go Outdated Show resolved Hide resolved
@siyuanfoundation
Copy link
Contributor Author

/retest

Copy link
Contributor

@fuweid fuweid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@serathius
Copy link
Member

Testing snapshot exchange between members in mixed version cluster is super useful! Thanks for adding those tests.

My suggestions:

  • Add scenario where there is a real network partition. Member downloading snapshot after being restarted is useful too, however I would prefer to also have a real network partition test. E2e test framework already supports separating member communication. You can check out robustness network blackhole failpoint.
  • Those tests should also exist between v3.6 and v3.5, I would suggest to first add them to the main branch, then we could backport the e2e framework tools and only at the end backport the test to v3.5.

Signed-off-by: Siyuan Zhang <sizhang@google.com>
@siyuanfoundation
Copy link
Contributor Author

Testing snapshot exchange between members in mixed version cluster is super useful! Thanks for adding those tests.

My suggestions:

  • Add scenario where there is a real network partition. Member downloading snapshot after being restarted is useful too, however I would prefer to also have a real network partition test. E2e test framework already supports separating member communication. You can check out robustness network blackhole failpoint.
  • Those tests should also exist between v3.6 and v3.5, I would suggest to first add them to the main branch, then we could backport the e2e framework tools and only at the end backport the test to v3.5.

The blackhole failpoint is problematic right now #17737

@serathius serathius merged commit dad2bab into etcd-io:release-3.5 Apr 10, 2024
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants