Skip to content

cmd/go: data race on Action.buildID between updateBuildID and tryCacheWithID with -coverpkg #81366

Closed as duplicate

Description

@gopherbot
#!watchflakes
default <- pkg == "cmd/go" && test == "TestScript/cover_dot_import"

Issue created automatically to collect these failures.

Example (log):

=== RUN   TestScript/cover_dot_import
=== PAUSE TestScript/cover_dot_import
=== CONT  TestScript/cover_dot_import
    script_test.go:141: 2026-09-04T22:28:05Z
    script_test.go:143: $WORK=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3827900000/tmpdir921171203/cover_dot_import548104553
    script_test.go:165: 
        PATH=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3827900000/tmpdir921171203/testbin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/cache/tools/bin:/Users/swarming/.swarming/w/ir/bbagent_utility_packages:/Users/swarming/.swarming/w/ir/bbagent_utility_packages/bin:/Users/swarming/.swarming/w/ir/cipd_bin_packages:/Users/swarming/.swarming/w/ir/cipd_bin_packages/bin:/Users/swarming/.swarming/w/ir/cache/cipd_client:/Users/swarming/.swarming/w/ir/cache/cipd_client/bin:/Users/swarming/.swarming/cipd_cache/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
        HOME=/no-home
        CCACHE_DISABLE=1
        GOARCH=arm64
...
          cmd/go.Main()
              /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/export_test.go:7 +0x1af4
          cmd/go_test.TestMain()
              /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/go_test.go:156 +0x1af0
          main.main()
              _testmain.go:168 +0xf8
        ==================
        Found 1 data race(s)
    script_test.go:165: FAIL: testdata/script/cover_dot_import.txt:3: go test -coverpkg=coverdot/a,coverdot/b coverdot/b: exit status 66
--- FAIL: TestScript/cover_dot_import (1.83s)

— watchflakes

Activity

  1. gopherbot commented on Sep 5, 2026

    @gopherbot
    ContributorAuthor

    Found new dashboard test flakes for:

    #!watchflakes
    default <- pkg == "cmd/go" && test == "TestScript/cover_dot_import"
    
    2026-09-04 21:47 gotip-darwin-arm64-race go@cc740a9f cmd/go.TestScript/cover_dot_import (log)
    === RUN   TestScript/cover_dot_import
    === PAUSE TestScript/cover_dot_import
    === CONT  TestScript/cover_dot_import
        script_test.go:141: 2026-09-04T22:28:05Z
        script_test.go:143: $WORK=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3827900000/tmpdir921171203/cover_dot_import548104553
        script_test.go:165: 
            PATH=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3827900000/tmpdir921171203/testbin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/cache/tools/bin:/Users/swarming/.swarming/w/ir/bbagent_utility_packages:/Users/swarming/.swarming/w/ir/bbagent_utility_packages/bin:/Users/swarming/.swarming/w/ir/cipd_bin_packages:/Users/swarming/.swarming/w/ir/cipd_bin_packages/bin:/Users/swarming/.swarming/w/ir/cache/cipd_client:/Users/swarming/.swarming/w/ir/cache/cipd_client/bin:/Users/swarming/.swarming/cipd_cache/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
            HOME=/no-home
            CCACHE_DISABLE=1
            GOARCH=arm64
    ...
              cmd/go.Main()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/export_test.go:7 +0x1af4
              cmd/go_test.TestMain()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/go_test.go:156 +0x1af0
              main.main()
                  _testmain.go:168 +0xf8
            ==================
            Found 1 data race(s)
        script_test.go:165: FAIL: testdata/script/cover_dot_import.txt:3: go test -coverpkg=coverdot/a,coverdot/b coverdot/b: exit status 66
    --- FAIL: TestScript/cover_dot_import (1.83s)
    

    — watchflakes

  2. added
    AutomationIssues created by gopherbot or watchflakes automation.
    on Sep 5, 2026
  3. added
    NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.
    on Sep 11, 2026
  4. changed the title [-]cmd/go: TestScript/cover_dot_import failures[/-] [+]cmd/go: data race on Action.buildID between updateBuildID and tryCacheWithID with -coverpkg[/+] on Sep 11, 2026
  5. JunyangShao commented on Sep 11, 2026

    @JunyangShao
    Contributor

    @golang/go-command

  6. gopherbot commented on Sep 18, 2026

    @gopherbot
    ContributorAuthor

    Found new dashboard test flakes for:

    #!watchflakes
    default <- pkg == "cmd/go" && test == "TestScript/cover_dot_import"
    
    2026-09-18 15:40 gotip-darwin-arm64-race go@0ac819d3 cmd/go.TestScript/cover_dot_import (log)
    === RUN   TestScript/cover_dot_import
    === PAUSE TestScript/cover_dot_import
    === CONT  TestScript/cover_dot_import
        script_test.go:141: 2026-09-18T16:11:59Z
        script_test.go:143: $WORK=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-1022061341/tmpdir561864687/cover_dot_import1577201990
        script_test.go:165: 
            PATH=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-1022061341/tmpdir561864687/testbin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/cache/tools/bin:/Users/swarming/.swarming/w/ir/bbagent_utility_packages:/Users/swarming/.swarming/w/ir/bbagent_utility_packages/bin:/Users/swarming/.swarming/w/ir/cipd_bin_packages:/Users/swarming/.swarming/w/ir/cipd_bin_packages/bin:/Users/swarming/.swarming/w/ir/cache/cipd_client:/Users/swarming/.swarming/w/ir/cache/cipd_client/bin:/Users/swarming/.swarming/cipd_cache/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
            HOME=/no-home
            CCACHE_DISABLE=1
            GOARCH=arm64
    ...
              cmd/go.Main()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/export_test.go:7 +0x1af0
              cmd/go_test.TestMain()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/go_test.go:156 +0x1aec
              main.main()
                  _testmain.go:168 +0xf8
            ==================
            Found 1 data race(s)
        script_test.go:165: FAIL: testdata/script/cover_dot_import.txt:3: go test -coverpkg=coverdot/a,coverdot/b coverdot/b: exit status 66
    --- FAIL: TestScript/cover_dot_import (2.29s)
    

    — watchflakes

  7. thepudds commented on Sep 22, 2026

    @thepudds
    Member

    This data race seemed to bisect to 33e66cf:

      first BAD:    33e66cfb04 | 2026-04-07 14:21 | cmd/go: invalidate test cache when -coverpkg dependencies change
      GOOD parent:  fe5b750ce9 | 2026-04-07 14:15 | cmd/go/internal/modload: minor modernization fixes
    

    It seemed to reproduce more frequently with GOMAXPROCS=2. It's a flake, so maybe the bisect went sideways, but a simple sanity check seemed to reproduce the first bad / good parent finding.

    CC @ryancurrah @matloob

  8. gopherbot commented on Oct 3, 2026

    @gopherbot
    ContributorAuthor

    Found new dashboard test flakes for:

    #!watchflakes
    default <- pkg == "cmd/go" && test == "TestScript/cover_dot_import"
    
    2026-10-02 21:31 gotip-darwin-arm64-race go@bfc1e317 cmd/go.TestScript/cover_dot_import (log)
    === RUN   TestScript/cover_dot_import
    === PAUSE TestScript/cover_dot_import
    === CONT  TestScript/cover_dot_import
        script_test.go:141: 2026-10-03T00:24:55Z
        script_test.go:143: $WORK=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-993293531/tmpdir2546427337/cover_dot_import2836912047
        script_test.go:165: 
            PATH=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-993293531/tmpdir2546427337/testbin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/cache/tools/bin:/Users/swarming/.swarming/w/ir/bbagent_utility_packages:/Users/swarming/.swarming/w/ir/bbagent_utility_packages/bin:/Users/swarming/.swarming/w/ir/cipd_bin_packages:/Users/swarming/.swarming/w/ir/cipd_bin_packages/bin:/Users/swarming/.swarming/w/ir/cache/cipd_client:/Users/swarming/.swarming/w/ir/cache/cipd_client/bin:/Users/swarming/.swarming/cipd_cache/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
            HOME=/no-home
            CCACHE_DISABLE=1
            GOARCH=arm64
    ...
              cmd/go.Main()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/export_test.go:7 +0x1af0
              cmd/go_test.TestMain()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/go_test.go:157 +0x1aec
              main.main()
                  _testmain.go:168 +0xf8
            ==================
            Found 1 data race(s)
        script_test.go:165: FAIL: testdata/script/cover_dot_import.txt:3: go test -coverpkg=coverdot/a,coverdot/b coverdot/b: exit status 66
    --- FAIL: TestScript/cover_dot_import (1.64s)
    

    — watchflakes

  9. gopherbot commented on Oct 6, 2026

    @gopherbot
    ContributorAuthor

    Found new dashboard test flakes for:

    #!watchflakes
    default <- pkg == "cmd/go" && test == "TestScript/cover_dot_import"
    
    2026-10-05 19:28 gotip-darwin-arm64-race go@fe9d9239 cmd/go.TestScript/cover_dot_import (log)
    === RUN   TestScript/cover_dot_import
    === PAUSE TestScript/cover_dot_import
    === CONT  TestScript/cover_dot_import
        script_test.go:141: 2026-10-06T06:40:52Z
        script_test.go:143: $WORK=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3701159419/tmpdir4248723977/cover_dot_import3539076267
        script_test.go:165: 
            PATH=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3701159419/tmpdir4248723977/testbin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/cache/tools/bin:/Users/swarming/.swarming/w/ir/bbagent_utility_packages:/Users/swarming/.swarming/w/ir/bbagent_utility_packages/bin:/Users/swarming/.swarming/w/ir/cipd_bin_packages:/Users/swarming/.swarming/w/ir/cipd_bin_packages/bin:/Users/swarming/.swarming/w/ir/cache/cipd_client:/Users/swarming/.swarming/w/ir/cache/cipd_client/bin:/Users/swarming/.swarming/cipd_cache/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
            HOME=/no-home
            CCACHE_DISABLE=1
            GOARCH=arm64
    ...
              cmd/go.Main()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/export_test.go:7 +0x1af0
              cmd/go_test.TestMain()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/go_test.go:157 +0x1aec
              main.main()
                  _testmain.go:168 +0xf8
            ==================
            Found 1 data race(s)
        script_test.go:165: FAIL: testdata/script/cover_dot_import.txt:3: go test -coverpkg=coverdot/a,coverdot/b coverdot/b: exit status 66
    --- FAIL: TestScript/cover_dot_import (2.00s)
    

    — watchflakes

  10. gopherbot commented on Oct 7, 2026

    @gopherbot
    ContributorAuthor

    Found new dashboard test flakes for:

    #!watchflakes
    default <- pkg == "cmd/go" && test == "TestScript/cover_dot_import"
    
    2026-10-06 23:08 gotip-darwin-arm64-race go@ae7a18d9 cmd/go.TestScript/cover_dot_import (log)
    === RUN   TestScript/cover_dot_import
    === PAUSE TestScript/cover_dot_import
    === CONT  TestScript/cover_dot_import
        script_test.go:141: 2026-10-07T09:44:33Z
        script_test.go:143: $WORK=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3476246886/tmpdir2140396062/cover_dot_import3977668335
        script_test.go:165: 
            PATH=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3476246886/tmpdir2140396062/testbin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/cache/tools/bin:/Users/swarming/.swarming/w/ir/bbagent_utility_packages:/Users/swarming/.swarming/w/ir/bbagent_utility_packages/bin:/Users/swarming/.swarming/w/ir/cipd_bin_packages:/Users/swarming/.swarming/w/ir/cipd_bin_packages/bin:/Users/swarming/.swarming/w/ir/cache/cipd_client:/Users/swarming/.swarming/w/ir/cache/cipd_client/bin:/Users/swarming/.swarming/cipd_cache/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
            HOME=/no-home
            CCACHE_DISABLE=1
            GOARCH=arm64
    ...
              cmd/go.Main()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/export_test.go:7 +0x1af0
              cmd/go_test.TestMain()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/go_test.go:157 +0x1aec
              main.main()
                  _testmain.go:168 +0xf8
            ==================
            Found 1 data race(s)
        script_test.go:165: FAIL: testdata/script/cover_dot_import.txt:3: go test -coverpkg=coverdot/a,coverdot/b coverdot/b: exit status 66
    --- FAIL: TestScript/cover_dot_import (1.62s)
    

    — watchflakes

  11. gopherbot commented on Oct 9, 2026

    @gopherbot
    ContributorAuthor

    Found new dashboard test flakes for:

    #!watchflakes
    default <- pkg == "cmd/go" && test == "TestScript/cover_dot_import"
    
    2026-10-08 22:17 gotip-darwin-arm64-race go@6b5417f0 cmd/go.TestScript/cover_dot_import (log)
    === RUN   TestScript/cover_dot_import
    === PAUSE TestScript/cover_dot_import
    === CONT  TestScript/cover_dot_import
        script_test.go:141: 2026-10-09T00:46:30Z
        script_test.go:143: $WORK=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3765970121/tmpdir452084625/cover_dot_import2210641796
        script_test.go:165: 
            PATH=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-3765970121/tmpdir452084625/testbin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/cache/tools/bin:/Users/swarming/.swarming/w/ir/bbagent_utility_packages:/Users/swarming/.swarming/w/ir/bbagent_utility_packages/bin:/Users/swarming/.swarming/w/ir/cipd_bin_packages:/Users/swarming/.swarming/w/ir/cipd_bin_packages/bin:/Users/swarming/.swarming/w/ir/cache/cipd_client:/Users/swarming/.swarming/w/ir/cache/cipd_client/bin:/Users/swarming/.swarming/cipd_cache/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
            HOME=/no-home
            CCACHE_DISABLE=1
            GOARCH=arm64
    ...
              cmd/go.Main()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/export_test.go:7 +0x1af0
              cmd/go_test.TestMain()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/go_test.go:157 +0x1aec
              main.main()
                  _testmain.go:168 +0xf8
            ==================
            Found 1 data race(s)
        script_test.go:165: FAIL: testdata/script/cover_dot_import.txt:3: go test -coverpkg=coverdot/a,coverdot/b coverdot/b: exit status 66
    --- FAIL: TestScript/cover_dot_import (1.77s)
    

    — watchflakes

  12. gopherbot commented on Oct 9, 2026

    @gopherbot
    ContributorAuthor

    Found new dashboard test flakes for:

    #!watchflakes
    default <- pkg == "cmd/go" && test == "TestScript/cover_dot_import"
    
    2026-10-09 01:32 gotip-darwin-arm64-race go@b1fde0a2 cmd/go.TestScript/cover_dot_import (log)
    === RUN   TestScript/cover_dot_import
    === PAUSE TestScript/cover_dot_import
    === CONT  TestScript/cover_dot_import
        script_test.go:141: 2026-10-09T05:48:14Z
        script_test.go:143: $WORK=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-12567532/tmpdir3956446935/cover_dot_import2051175852
        script_test.go:165: 
            PATH=/Users/swarming/.swarming/w/ir/x/t/cmd-go-test-12567532/tmpdir3956446935/testbin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/x/w/goroot/bin:/Users/swarming/.swarming/w/ir/cache/tools/bin:/Users/swarming/.swarming/w/ir/bbagent_utility_packages:/Users/swarming/.swarming/w/ir/bbagent_utility_packages/bin:/Users/swarming/.swarming/w/ir/cipd_bin_packages:/Users/swarming/.swarming/w/ir/cipd_bin_packages/bin:/Users/swarming/.swarming/w/ir/cache/cipd_client:/Users/swarming/.swarming/w/ir/cache/cipd_client/bin:/Users/swarming/.swarming/cipd_cache/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
            HOME=/no-home
            CCACHE_DISABLE=1
            GOARCH=arm64
    ...
              cmd/go.Main()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/export_test.go:7 +0x1af0
              cmd/go_test.TestMain()
                  /Users/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/go_test.go:157 +0x1aec
              main.main()
                  _testmain.go:168 +0xf8
            ==================
            Found 1 data race(s)
        script_test.go:165: FAIL: testdata/script/cover_dot_import.txt:3: go test -coverpkg=coverdot/a,coverdot/b coverdot/b: exit status 66
    --- FAIL: TestScript/cover_dot_import (2.34s)
    

    — watchflakes

  13. ryancurrah commented on Oct 9, 2026

    @ryancurrah
    Contributor

    I might have some time this weekend to take a look at it.

  14. ryancurrah commented on Oct 11, 2026

    @ryancurrah
    Contributor

    Im unable to reproduce the race condition locally it could be my slow hardware/laptop.

    I have a CR here https://go-review.googlesource.com/c/go/+/847669 not sure how to run the race tests in CI against it.

  15. thepudds commented on Oct 15, 2026

    @thepudds
    Member

    This might be a duplicate of #81327 and perhaps fixed by https://go.dev/cl/847669.

    Optimistically closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

AutomationIssues created by gopherbot or watchflakes automation.GoCommandcmd/goNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.RaceDetector

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions