Skip to content

Conversation

@DarrylWong
Copy link
Contributor

In the past, we used to bump CRDB's minSupportedVersion before bumping CRDB's current version.

Consider the old version bump process:

  1. Bump minimum supported version (e.g. 25.2→25.3)
  2. Bump current version (e.g. 25.4→26.1)
  3. Bump minimum supported version again (e.g. 25.3→25.4)

After the first step, we would be in a state where the mixed version framework would see v25.3 as a skippable version (.1 and .3 ordinal versions are skippable), but since the minimum supported version is 25.3, 25.2→25.4 is (temporarily) not a legal upgrade.

This required a special case to disallow skip upgrades in the case of this edge case. However, we now bump the current version first. This means we no longer need to protect against the above and we actually hit a different bug.

Since we now bump the current version first, the special case will always view the current version as having multiple supported predecessors and force a skip upgrade even if not applicable.

Release note: none
Epic: none

@DarrylWong DarrylWong requested a review from a team as a code owner November 14, 2025 19:48
@DarrylWong DarrylWong requested review from golgeek and williamchoe3 and removed request for a team November 14, 2025 19:48
@cockroach-teamcity
Copy link
Member

This change is Reviewable

@DarrylWong DarrylWong force-pushed the remove-skip-version-case branch from d746a8b to 5b2ff6a Compare November 14, 2025 20:02
@github-actions
Copy link

Potential Bug(s) Detected

The three-stage Claude Code analysis has identified potential bug(s) in this PR that may warrant investigation.

Next Steps:
Please review the detailed findings in the workflow run.

Note: When viewing the workflow output, scroll to the bottom to find the Final Analysis Summary.

After you review the findings, please tag the issue as follows:

  • If the detected issue is real or was helpful in any way, please tag the issue with O-AI-Review-Real-Issue-Found
  • If the detected issue was not helpful in any way, please tag the issue with O-AI-Review-Not-Helpful

@github-actions github-actions bot added the o-AI-Review-Potential-Issue-Detected AI reviewer found potential issue. Never assign manually—auto-applied by GH action only. label Nov 14, 2025
@DarrylWong DarrylWong force-pushed the remove-skip-version-case branch 2 times, most recently from 6521a1f to 96bd161 Compare November 14, 2025 20:19
@williamchoe3
Copy link
Contributor

williamchoe3 commented Nov 14, 2025

Does the TestSupportsSkipUpgradeTo unit test need to be modified too? it's calling the same function https://github.com/cockroachdb/cockroach/blob/8f7440139a0c0a83dac92092bf75a53c3198ef1b/pkg/cmd/roachtest/roachtestutil/mixedversion/mixedversion_test.go

@DarrylWong DarrylWong force-pushed the remove-skip-version-case branch from 96bd161 to 33f9904 Compare November 14, 2025 20:51
@DarrylWong
Copy link
Contributor Author

Done, although that probably could've been removed a long time ago since prev is fixed at 24.3 for that test.

In the past, we used to bump CRDB's minSupportedVersion _before_
bumping CRDB's current version.

Consider the old version bump process:
  1. Bump minimum supported version (e.g. 25.2→25.3)
  2. Bump current version (e.g. 25.4→26.1)
  3. Bump minimum supported version again (e.g. 25.3→25.4)

After the first step, we would be in a state where the
mixed version framework would see v25.3 as a skippable
version (.1 and .3 ordinal versions are skippable), but
since the minimum supported version is 25.3, 25.2→25.4
is (temporarily) not a legal upgrade.

This required a special case to disallow skip upgrades
in the case of this edge case. However, we now bump the
current version _first_. This means we no longer need
to protect against the above and we actually hit a
different bug.

Since we now bump the current version first, the special
case will always view the current version as having multiple
supported predecessors and force a skip upgrade even if not
applicable.
@DarrylWong DarrylWong force-pushed the remove-skip-version-case branch from 33f9904 to d88aca2 Compare November 17, 2025 15:28
Copy link
Contributor

@williamchoe3 williamchoe3 left a comment

Choose a reason for hiding this comment

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

Saw the thread in #test-eng too, changes make sense, skimmed the surrounding logic to understand the edge case, lgtm. This type of thing seems to be a consequence of the messy release support strategy / versioning of innovation and non innovation releases

@DarrylWong
Copy link
Contributor Author

TFTR

bors r=williamchoe3

craig bot pushed a commit that referenced this pull request Nov 17, 2025
157784: tree: speed up two tests r=yuzefovich a=yuzefovich

We just saw a package-level test timeout of 1 minute being hit because `TestRandomInjectHints` took 29s and `TestParseArrayRandomParseArray` took 16s before interruption. This commit reduces the number of iterations by 5x and 10x, respectively.

Fixes: #157256.
Release note: None

157852: mixedversion: remove special case for skipping current version r=williamchoe3 a=DarrylWong

In the past, we used to bump CRDB's minSupportedVersion _before_ bumping CRDB's current version.

Consider the old version bump process:
  1. Bump minimum supported version (e.g. 25.2→25.3)
  2. Bump current version (e.g. 25.4→26.1)
  3. Bump minimum supported version again (e.g. 25.3→25.4)

After the first step, we would be in a state where the mixed version framework would see v25.3 as a skippable version (.1 and .3 ordinal versions are skippable), but since the minimum supported version is 25.3, 25.2→25.4 is (temporarily) not a legal upgrade.

This required a special case to disallow skip upgrades in the case of this edge case. However, we now bump the current version _first_. This means we no longer need to protect against the above and we actually hit a different bug.

Since we now bump the current version first, the special case will always view the current version as having multiple supported predecessors and force a skip upgrade even if not applicable.

Release note: none
Epic: none

157919: roachprod: fix service registry unit test name collision r=golgeek a=DarrylWong

We were previously generating cluster names with Uint32, which is not sufficient enough to prevent naming collisions after 1000 iterations. Instead, use a RandString of length 10.

Fixes: #157884
Release note: none

157920: storage,server: add debug separated value retrieval profile endpoint r=RaduBerinde a=jbowens

Add a new debug endpoint that returns a text-formatted representation of all the stack traces that performed a retrieval of a separated value while the profile was being collected. This provides better observability into what code paths are suffering more expensive value retrievals.

Epic: none
Informs: #146575
Release note: none

Co-authored-by: Yahor Yuzefovich <[email protected]>
Co-authored-by: DarrylWong <[email protected]>
Co-authored-by: Jackson Owens <[email protected]>
@craig
Copy link
Contributor

craig bot commented Nov 17, 2025

Build failed (retrying...):

@craig
Copy link
Contributor

craig bot commented Nov 18, 2025

@craig craig bot merged commit 923f761 into cockroachdb:master Nov 18, 2025
24 of 25 checks passed
// test correct when we bump the minimum supported version separately from
// the current version.
r := clusterversion.Latest.ReleaseSeries()
currentMajor := version.MajorVersion{Year: int(r.Major), Ordinal: int(r.Minor)}
Copy link
Member

Choose a reason for hiding this comment

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

The fact that Test_UpgradePaths didn't fail suggests it's weakly specified. I think we should strengthen it by asserting the "ordinal invariant", i.e., no skips from even.

DarrylWong added a commit to DarrylWong/fork that referenced this pull request Nov 18, 2025
DarrylWong added a commit to DarrylWong/fork that referenced this pull request Nov 18, 2025
DarrylWong added a commit to DarrylWong/fork that referenced this pull request Nov 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

o-AI-Review-Potential-Issue-Detected AI reviewer found potential issue. Never assign manually—auto-applied by GH action only. target-release-26.1.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants