Skip to content

4.x: Separate TestHelper.race uses so they can run @Isolated #8075

Open

Description

@akarnokd

There are no failures but the race tests are there to provoke failures. Them not failing when run parallel might just indicate the failure condition wasn't triggered due to interleaving.

Separating them out and running them JUnit 6 @Isolated can restore faith.

Also double check for any manual racing tests that haven't been converted to TestHelper.race before.

PR Welcome.

Activity

  1. added this to the 4.0 milestone on Mar 25, 2026
  2. added theissue type on Mar 25, 2026
  3. oaksprout commented on Jul 28, 2026

    @oaksprout
    Contributor

    Would you want this one done? — Make RxJava's concurrency race-condition tests run isolated (JUnit @Isolated) instead of in parallel with everything else, so a real race-condition regression can't be masked by interleaving with unrelated tests, and check for any manual racing tests that still need converting to the shared TestHelper.race helper. If yes, we'll do it and open a PR; if not, say so (or just ignore this) and we won't touch it.

    How it works: an AI agent does the work against your write-up; it's independently checked in a clean container (your test suite, network off) before anything reaches you; a human reviews it, submits it, and answers the review. You keep full control — nothing lands unless you merge it.

    Recent examples of the same flow on other projects: stretchr/testify#1932, pypa/pip-audit#1089, openstreetmap/iD#12631.

    We're testing whether work offered this way is useful to maintainers — a blunt "no" is as helpful as a yes.

  4. akarnokd commented on Jul 28, 2026

    @akarnokd
    MemberAuthor

    Not urgently but yes. The filename pattern should be the original name plus the word Isolated inserted before the Test.java part.

    Please do the movements and conversions in separate PRs. You can do as many PRs in each category as you want.

  5. oaksprout commented on Jul 29, 2026

    @oaksprout
    Contributor

    Thanks — first movements batch is up: #8253. Six classes from the Flowable flatMap/mergeWith family, named per your pattern, movements only. Kept it small so you can veto the shape before I produce the rest (179 files with TestHelper.race remain). Checked in a clean container before it went up — full record in the PR.

    Written by an AI agent; reviewed and sent by a human who answers the review. Say the batch size or grouping you'd prefer and the next ones will follow it.

  6. added a commit that references this issue on Jul 29, 2026
  7. oaksprout commented on Aug 3, 2026

    @oaksprout
    Contributor

    Thanks for the honest answer above, genuinely useful to hear plainly. Batch 2 is up: #8257. Same shape as before, Observable family this time.

  8. added a commit that references this issue on Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions