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

add linearizability nightlies for release 3.4/3.5 #14915

Closed
wants to merge 1 commit into from

Conversation

tjungblu
Copy link
Contributor

@tjungblu tjungblu commented Dec 8, 2022

This CL refactors the tests to reuse a single workflow that has parameters. This is then reused for PRs/pushes and the nightlies.

Signed-off-by: Thomas Jungblut tjungblu@redhat.com

@tjungblu tjungblu force-pushed the linnightbranch branch 2 times, most recently from bf5e312 to ce33a8c Compare December 8, 2022 09:48
@tjungblu
Copy link
Contributor Author

tjungblu commented Dec 8, 2022

also looking into today's run: https://github.com/etcd-io/etcd/actions/runs/3646971615/jobs/6158650127

There's a 30m timeout on the test runner itself, we need to make this configurable too. EDIT: done.

@tjungblu tjungblu force-pushed the linnightbranch branch 3 times, most recently from b3a16b4 to 8c7e5ac Compare December 8, 2022 10:24
This CL refactors the tests to reuse a single workflow that has
parameters. This is then reused for PRs/pushes and the nightlies.

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
timeout-minutes: 180
uses: ./.github/workflows/linearizability-workflow.yaml
with:
ref: release-3.4
Copy link
Member

Choose a reason for hiding this comment

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

Older branches don't have code for linearizability tests. You need to compile old etcd version, but run linearizability tests latest main branch. Please see https://github.com/etcd-io/etcd/pull/14912/files

ref: main
count: 500
timeoutDuration: 3h
test-3.5:
Copy link
Member

@serathius serathius Dec 8, 2022

Choose a reason for hiding this comment

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

Note, older releases don't have same gofailpoints. Tests will fail when trying to trigger a failpoint that is present on main which is not available on release-3.4 nor release-3.5.

We might need to skip some of scenarios that are not yet backward compatible.

To make new failpoints work with older releases we would need:

  • merge remove path from failpoint gofail#44 (comment) that will ensure that failpoints have same name
  • For linearizability tests implement checking which failpoints are available in etcd server (should be available in one of HTTP endpoints) and triggering only those available.

Copy link
Member

Choose a reason for hiding this comment

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

Second point was implemented in #15046

with:
go-version: ${{ inputs.goVersion }}
- run: |
make gofail-enable
Copy link
Member

Choose a reason for hiding this comment

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

Scripts for building on older branches are really different.

@serathius
Copy link
Member

All dependent features needed for this feature were implemented (consistent naming of failpoints between releases, triggering only available failpoints). @tjungblu do you want to finish the PR?

@serathius
Copy link
Member

Superseded by #15106

@serathius serathius closed this Jan 14, 2023
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.

2 participants