Skip to content

roachtest: port remaining mixed-version roachtests to the new framework #110528

@srosenberg

Description

@srosenberg

The original roachtest mixed-version framework [1] was born sometime in 2017. While it has gone through many iterations and improvements since then, its limitations have inspired a new, declarative approach [2], which attempts to increase coverage of the mixed-version states while reducing boilerplate, thereby allowing the author to focus on the salient bits, namely workloads and invariants. The new mixed-version framework has already proven its worth by finding 12+ new bugs, having ported only two pre-existing roachtests,

Most recently, an initial port of cdc/mixed-versions was merged. This leaves the following roachtests which remain to be ported,

In virtue of the new framework, even a mechanical approach to porting the above is likely to yield a higher coverage of the mixed-version states. However, we ask that the authors take a deliberate approach by studying the limitations of the current implementation and correcting them, when feasible, with the help of the new framework.

In addition to the above, TestEng is planning to add a long-running workload utilizing sqlancer in the near term. (Unlike existing workloads, sqlancer is more antagonistic and randomized, albeit synthetic.) Mid-to-longer term, automated failure injection and other features will be added to the framework, thereby increasing overall coverage of error-handling (e.g., verifying that migration steps are indeed idempotent).

[1] #18057
[2] https://github.com/cockroachdb/cockroach/blob/master/pkg/cmd/roachtest/roachtestutil/mixedversion/README.md

Jira issue: CRDB-31478

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-enhancementSolution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)T-testengTestEng Teammeta-issueContains a list of several other issues.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions