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

testing: TestRaceDuringParallelFailsAllSubtests failures #66098

Open
gopherbot opened this issue Mar 4, 2024 · 4 comments
Open

testing: TestRaceDuringParallelFailsAllSubtests failures #66098

gopherbot opened this issue Mar 4, 2024 · 4 comments
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. RaceDetector
Milestone

Comments

@gopherbot
Copy link

#!watchflakes
default <- pkg == "testing" && test == "TestRaceDuringParallelFailsAllSubtests"

Issue created automatically to collect these failures.

Example (log):

=== RUN   TestRaceDuringParallelFailsAllSubtests
    testing_test.go:525: /home/swarming/.swarming/w/ir/x/t/go-build1832037510/b611/testing.test -test.run=^TestRaceDuringParallelFailsAllSubtests$ -test.bench=TestRaceDuringParallelFailsAllSubtests -test.v -test.parallel=2 -test.benchtime=2x: <nil>
        === RUN   TestRaceDuringParallelFailsAllSubtests
        === RUN   TestRaceDuringParallelFailsAllSubtests/sub
        === RUN   TestRaceDuringParallelFailsAllSubtests/sub/subsub1
        === PAUSE TestRaceDuringParallelFailsAllSubtests/sub/subsub1
        === RUN   TestRaceDuringParallelFailsAllSubtests/sub/subsub2
        === PAUSE TestRaceDuringParallelFailsAllSubtests/sub/subsub2
        === CONT  TestRaceDuringParallelFailsAllSubtests/sub/subsub2
        === CONT  TestRaceDuringParallelFailsAllSubtests/sub/subsub1
        --- PASS: TestRaceDuringParallelFailsAllSubtests (0.00s)
            --- PASS: TestRaceDuringParallelFailsAllSubtests/sub (0.00s)
                --- PASS: TestRaceDuringParallelFailsAllSubtests/sub/subsub1 (0.00s)
                --- PASS: TestRaceDuringParallelFailsAllSubtests/sub/subsub2 (0.00s)
        PASS
    testing_test.go:534: got 0 race reports, want 2
--- FAIL: TestRaceDuringParallelFailsAllSubtests (1.04s)

watchflakes

@gopherbot gopherbot added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Mar 4, 2024
@gopherbot
Copy link
Author

Found new dashboard test flakes for:

#!watchflakes
default <- pkg == "testing" && test == "TestRaceDuringParallelFailsAllSubtests"
2024-03-04 17:32 gotip-linux-amd64-longtest-race go@c2734187 testing.TestRaceDuringParallelFailsAllSubtests (log)
=== RUN   TestRaceDuringParallelFailsAllSubtests
    testing_test.go:525: /home/swarming/.swarming/w/ir/x/t/go-build1832037510/b611/testing.test -test.run=^TestRaceDuringParallelFailsAllSubtests$ -test.bench=TestRaceDuringParallelFailsAllSubtests -test.v -test.parallel=2 -test.benchtime=2x: <nil>
        === RUN   TestRaceDuringParallelFailsAllSubtests
        === RUN   TestRaceDuringParallelFailsAllSubtests/sub
        === RUN   TestRaceDuringParallelFailsAllSubtests/sub/subsub1
        === PAUSE TestRaceDuringParallelFailsAllSubtests/sub/subsub1
        === RUN   TestRaceDuringParallelFailsAllSubtests/sub/subsub2
        === PAUSE TestRaceDuringParallelFailsAllSubtests/sub/subsub2
        === CONT  TestRaceDuringParallelFailsAllSubtests/sub/subsub2
        === CONT  TestRaceDuringParallelFailsAllSubtests/sub/subsub1
        --- PASS: TestRaceDuringParallelFailsAllSubtests (0.00s)
            --- PASS: TestRaceDuringParallelFailsAllSubtests/sub (0.00s)
                --- PASS: TestRaceDuringParallelFailsAllSubtests/sub/subsub1 (0.00s)
                --- PASS: TestRaceDuringParallelFailsAllSubtests/sub/subsub2 (0.00s)
        PASS
    testing_test.go:534: got 0 race reports, want 2
--- FAIL: TestRaceDuringParallelFailsAllSubtests (1.04s)

watchflakes

@bcmills
Copy link
Contributor

bcmills commented Mar 4, 2024

@golang/compiler, this looks like a false-negative from the race detector. (I don't see any way that the test in question could fail to produce the intended race.)

@bcmills bcmills added RaceDetector compiler/runtime Issues related to the Go compiler and/or runtime. labels Mar 4, 2024
@mknyszek mknyszek added this to the Backlog milestone Mar 6, 2024
@mknyszek
Copy link
Contributor

mknyszek commented Mar 6, 2024

Interesting, I'm not sure what we can do about that. The race detector, IIUC, is always potentially going to have false negatives. Perhaps someone who's familiar with the race detector internals could help.

CC @dvyukov maybe?

@dvyukov
Copy link
Member

dvyukov commented Mar 7, 2024

Positive race tests are executed with GOMAXPROCS=1 for this reason. Do testing package tests do it?

Another option is to repeat positive tests multiple tests, if it fails at least once (on N/M times), that's good enough.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compiler/runtime Issues related to the Go compiler and/or runtime. NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. RaceDetector
Projects
Status: No status
Development

No branches or pull requests

4 participants