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

roachtest: stop using versionUpgradeTest in acceptance/decommission-self #110530

Closed
srosenberg opened this issue Sep 13, 2023 · 4 comments · Fixed by #131252
Closed

roachtest: stop using versionUpgradeTest in acceptance/decommission-self #110530

srosenberg opened this issue Sep 13, 2023 · 4 comments · Fixed by #131252
Labels
branch-master Failures and bugs on the master branch. branch-release-23.2 Used to mark GA and release blockers, technical advisories, and bugs for 23.2 C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) P-3 Issues/test failures with no fix SLA T-testeng TestEng Team

Comments

@srosenberg
Copy link
Member

srosenberg commented Sep 13, 2023

The acceptance/decommission-self test currently uses versionUpgradeTest and related functions even though the test is not an upgrade / mixed-version test. In order to make it less confusing and enable us to fully deprecate and remove versionUpgradeTest (in favour of the mixedversion framework), we should update that test to not use that function.

Jira issue: CRDB-31480

@srosenberg srosenberg added C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) T-kv KV Team labels Sep 13, 2023
@blathers-crl
Copy link

blathers-crl bot commented Oct 1, 2023

Hi @lunevalex, please add branch-* labels to identify which branch(es) this release-blocker affects.

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf.

@renatolabs renatolabs added branch-master Failures and bugs on the master branch. branch-release-23.2 Used to mark GA and release blockers, technical advisories, and bugs for 23.2 GA-blocker labels Nov 27, 2023
@kvoli
Copy link
Collaborator

kvoli commented Dec 12, 2023

acceptance/decommission-self doesn't use a mixed version cluster afaict. The test piggybacks the versionUpgradeTest step framework and decommission steps for convenience.

Should we update this test use the new mixed version framework without running in mixed versions? @renatolabs

@renatolabs
Copy link
Contributor

renatolabs commented Dec 12, 2023

Should we update this test use the new mixed version framework without running in mixed versions?

Since this is not a mixed-version test, I think we should not use the mixedversion framework. When we created the issue were probably confused by the test's use of versionUpgradeTest.

I'll remove the labels and make this issue be about changing that test to not use versionUpgradeTest so it's less confusing and we are able to eventually remove versionUpgradeTest and related functions.

Update: done.

@renatolabs renatolabs changed the title roachtest: port acceptance/decommission-self to new mixed-version framework roachtest: stop using versionUpgradeTest in acceptance/decommission-self Dec 12, 2023
@kvoli kvoli added the P-3 Issues/test failures with no fix SLA label Dec 13, 2023
@github-project-automation github-project-automation bot moved this to Incoming in KV Aug 28, 2024
renatolabs added a commit to renatolabs/cockroach that referenced this issue Sep 23, 2024
This commit ports the `decommission/mixed-versions` roachtest to use
the `mixedversion` framework (instead of the old `newUpgradeTest`
API). It also updates `acceptance/decommission-self` since both tests
used shared functionality that needed to be updated. Prior to this
commit, the acceptance test used the old upgrade test API even though
it was not an upgrade test.

Fixes: cockroachdb#110531
Fixes: cockroachdb#110530

Release note: None
craig bot pushed a commit that referenced this issue Sep 25, 2024
130728: kvserver: add rac2 v1 integration tests r=sumeerbhola a=kvoli

1st commit from #130619.
2nd-3rd commits from #131106.
4th-5th commits from #131107.
6th-7th commits from #131108.
8th commit from #131109.

---
Introduce several tests in `flow_control_integration_test.go`, mirroring
the existing tests but applied to the replication flow control v2
machinery.

The tests largely follow an identical pattern to the existing v1 tests,
swapping in rac2 metrics and vtables.

The following tests are added:

```
TestFlowControlBasicV2
TestFlowControlRangeSplitMergeV2
TestFlowControlBlockedAdmissionV2
TestFlowControlAdmissionPostSplitMergeV2
TestFlowControlCrashedNodeV2
TestFlowControlRaftSnapshotV2
TestFlowControlRaftMembershipV2
TestFlowControlRaftMembershipRemoveSelfV2
TestFlowControlClassPrioritizationV2
TestFlowControlQuiescedRangeV2
TestFlowControlUnquiescedRangeV2
TestFlowControlTransferLeaseV2
TestFlowControlLeaderNotLeaseholderV2
TestFlowControlGranterAdmitOneByOneV2
```

These tests all have at least two variants:

```
V2EnabledWhenLeaderV1Encoding
V2EnabledWhenLeaderV2Encoding
```

When `V2EnabledWhenLeaderV1Encoding` is run, the tests use a different
testdata file, which has a `_v1_encoding` suffix. A separate file is
necessary because when the protocol enablement level is
`V2EnabledWhenLeaderV1Encoding`, all entries which are subject to
admission control are encoded as `raftpb.LowPri`, regardless of their
original priority, as we don't want to pay the cost to deserialize the
raft admission meta.

The v1 encoding variants retain the same comments as the v2 encoding,
however any comments referring to regular tokens should be interpreted
as elastic tokens instead, due to the above.

Two v1 tests are not ported over to v2:

```
TestFlowControlRaftTransportBreak
TestFlowControlRaftTransportCulled
```

These omitted tests behave identically to `TestFlowControlCrashedNodeV2`
as rac2 is less tightly coupled to the raft transport, instead operating
on replication states (e.g., `StateProbe`, `StateReplicate`).

--- 

Add `TestFlowControlV1ToV2Transition`, which ratchets up the enabled
version of replication flow control v2:

```
v1 protocol with v1 encoding =>
v2 protocol with v1 encoding =>
v2 protocol with v2 encoding
```

The test is structured to issue writes and wait for returned tokens
whenever the protocol transitions from v1 to v2, or a leader changes.

More specifically, the test takes the following steps:

```
(1) Start n1, n2, n3 with v1 protocol and v1 encoding.
(2) Upgrade n1 to v2 protocol with v1 encoding.
(3) Transfer the range lease to n2.
(4) Upgrade n2 to v2 protocol with v1 encoding.
(5) Upgrade n3 to v2 protocol with v1 encoding.
(6) Upgrade n1 to v2 protocol with v2 encoding.
(7) Transfer the range lease to n1.
(8) Upgrade n2,n3 to v2 protocol with v2 encoding.
(9) Transfer the range lease to n3.
```

Between each step, we issue writes, (un)block admission and observe the
flow control metrics and vtables.

Resolves: #130431
Resolves: #129276
Release note: None

131252: roachtest: port decommission/mixed-versions r=srosenberg,DarrylWong a=renatolabs

This commit ports the `decommission/mixed-versions` roachtest to use the `mixedversion` framework (instead of the old `newUpgradeTest` API). It also updates `acceptance/decommission-self` since both tests used shared functionality that needed to be updated. Prior to this commit, the acceptance test used the old upgrade test API even though it was not an upgrade test.

Fixes: #110531
Fixes: #110530

Release note: None

131364: upgrades: give test an additional core under remote exec r=rail a=rickystewart

This has been timing out.

Epic: none
Release note: None

Co-authored-by: Austen McClernon <[email protected]>
Co-authored-by: Renato Costa <[email protected]>
Co-authored-by: Ricky Stewart <[email protected]>
@craig craig bot closed this as completed in b6b6db6 Sep 25, 2024
@exalate-issue-sync exalate-issue-sync bot added T-testeng TestEng Team and removed T-kv KV Team labels Oct 17, 2024
Copy link

blathers-crl bot commented Oct 17, 2024

cc @cockroachdb/test-eng

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
branch-master Failures and bugs on the master branch. branch-release-23.2 Used to mark GA and release blockers, technical advisories, and bugs for 23.2 C-enhancement Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception) P-3 Issues/test failures with no fix SLA T-testeng TestEng Team
Projects
No open projects
Status: Incoming
Development

Successfully merging a pull request may close this issue.

6 participants