go/types: TestStdlib fails due to data race in Checker.finiteSize
#!watchflakes
default <- pkg == "go/types" && test == "TestStdlib"
Issue created automatically to collect these failures.
Example (log):
=== RUN TestStdlib
package fips140tls
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/tls/internal/fips140tls/fipstls.go
package fips140
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/fips140/enforcement.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/fips140/fips140.go
package telemetry
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/internal/telemetry/telemetry.go
package godebug
/home/swarming/.swarming/w/ir/x/w/goroot/src/internal/godebug/godebug.go
...
go/types_test.TestStdlib()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:75 +0x433
testing.tRunner()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2036 +0x21c
testing.(*T).Run.gowrap1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2101 +0x38
==================
680 packages typechecked in 1m8.599427294s
testing.go:1712: race detected during execution of test
--- FAIL: TestStdlib (78.34s)
Found new dashboard test flakes for:
#!watchflakes
default <- pkg == "go/types" && test == "TestStdlib"
2025-12-09 16:51 gotip-linux-amd64-longtest-race go@1274d58d go/types.TestStdlib (log)
=== RUN TestStdlib
package fips140tls
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/tls/internal/fips140tls/fipstls.go
package fips140
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/fips140/enforcement.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/fips140/fips140.go
package telemetry
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/internal/telemetry/telemetry.go
package godebug
/home/swarming/.swarming/w/ir/x/w/goroot/src/internal/godebug/godebug.go
...
go/types_test.TestStdlib()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:75 +0x433
testing.tRunner()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2036 +0x21c
testing.(*T).Run.gowrap1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2101 +0x38
==================
680 packages typechecked in 1m8.599427294s
testing.go:1712: race detected during execution of test
--- FAIL: TestStdlib (78.34s)
cc: @mrkfrmn
https://results.usercontent.cr.dev/invocations/build-8695943116115935809/tests/go%2Ftypes.TestStdlib/results/782c03df-01692/artifacts/output?token=AXsiX2kiOiIxNzY1MzIwOTI3OTA3IiwiX3giOiIzNjAwMDAwIn1VllTQeSpHNA0I86zOfsefnUlVkdLZKMIdNZ9G8jLRLA:
=================
WARNING: DATA RACE
Read at 0x00c0161367a0 by goroutine 935:
go/types.(*Checker).finiteSize()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/cycles.go:115 +0x17b
go/types.(*Checker).pendingType()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1036 +0x7e
go/types.(*Checker).rawExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:994 +0x2f9
go/types.(*Checker).exprOrType()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1336 +0x5b
go/types.(*Checker).selector()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/call.go:780 +0x767
go/types.(*Checker).exprInternal()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1088 +0x3e4
go/types.(*Checker).rawExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:982 +0x2b5
go/types.(*Checker).exprOrType()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1336 +0x5b
go/types.(*Checker).callExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/call.go:186 +0x6b7
go/types.(*Checker).exprInternal()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1137 +0xccd
go/types.(*Checker).rawExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:982 +0x2b5
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:445 +0x2a7d
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:603 +0x8e4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:615 +0x3e84
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).funcBody()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:42 +0x564
go/types.(*Checker).funcDecl.func1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/decl.go:838 +0xb1
go/types.(*Checker).processDelayed()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:595 +0x404
go/types.(*Checker).checkFiles()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:537 +0x6b3
go/types.(*Checker).Files()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:491 +0x129
go/types.(*Config).Check()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/api.go:492 +0x8c
go/types_test.typecheckFiles()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:408 +0x7fe
go/types_test.(*stdlibChecker).getDirPackage()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:156 +0x2e4
go/types_test.TestStdlib.func2()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:81 +0x105
Previous write at 0x00c0161367a0 by goroutine 1172:
go/types.(*Checker).finiteSize.func1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/cycles.go:120 +0x39
runtime.deferreturn()
/home/swarming/.swarming/w/ir/x/w/goroot/src/runtime/panic.go:668 +0x5d
go/types.(*Checker).pendingType()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1036 +0x7e
go/types.(*Checker).rawExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:994 +0x2f9
go/types.(*Checker).expr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1276 +0x5b
go/types.(*Checker).initVars()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/assignments.go:412 +0x9a9
go/types.(*Checker).shortVarDecl()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/assignments.go:587 +0xe38
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:512 +0x14a4
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:603 +0x8e4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:615 +0x3e84
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:603 +0x8e4
go/types.(*Checker).rangeStmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/range.go:196 +0x66d
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:858 +0x2319
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).funcBody()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:42 +0x564
go/types.(*Checker).funcDecl.func1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/decl.go:838 +0xb1
go/types.(*Checker).processDelayed()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:595 +0x404
go/types.(*Checker).checkFiles()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:537 +0x6b3
go/types.(*Checker).Files()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:491 +0x129
go/types.(*Config).Check()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/api.go:492 +0x8c
go/types_test.typecheckFiles()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:408 +0x7fe
go/types_test.(*stdlibChecker).getDirPackage()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:156 +0x2e4
go/types_test.TestStdlib.func2()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:81 +0x105
Goroutine 935 (running) created at:
go/types_test.TestStdlib()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:75 +0x433
testing.tRunner()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2036 +0x21c
testing.(*T).Run.gowrap1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2101 +0x38
Goroutine 1172 (finished) created at:
go/types_test.TestStdlib()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:75 +0x433
testing.tRunner()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2036 +0x21c
testing.(*T).Run.gowrap1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2101 +0x38
==================
==================
WARNING: DATA RACE
Read at 0x00c01416a3cf by goroutine 935:
go/types.(*Checker).finiteSize()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/cycles.go:116 +0x754
go/types.(*Checker).pendingType()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1036 +0x7e
go/types.(*Checker).rawExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:994 +0x2f9
go/types.(*Checker).exprOrType()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1336 +0x5b
go/types.(*Checker).selector()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/call.go:780 +0x767
go/types.(*Checker).exprInternal()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1088 +0x3e4
go/types.(*Checker).rawExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:982 +0x2b5
go/types.(*Checker).exprOrType()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1336 +0x5b
go/types.(*Checker).callExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/call.go:186 +0x6b7
go/types.(*Checker).exprInternal()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1137 +0xccd
go/types.(*Checker).rawExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:982 +0x2b5
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:445 +0x2a7d
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:603 +0x8e4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:615 +0x3e84
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).funcBody()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:42 +0x564
go/types.(*Checker).funcDecl.func1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/decl.go:838 +0xb1
go/types.(*Checker).processDelayed()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:595 +0x404
go/types.(*Checker).checkFiles()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:537 +0x6b3
go/types.(*Checker).Files()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:491 +0x129
go/types.(*Config).Check()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/api.go:492 +0x8c
go/types_test.typecheckFiles()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:408 +0x7fe
go/types_test.(*stdlibChecker).getDirPackage()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:156 +0x2e4
go/types_test.TestStdlib.func2()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:81 +0x105
Previous write at 0x00c01416a3cf by goroutine 1172:
go/types.(*Checker).finiteSize()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/cycles.go:131 +0x6b5
go/types.(*Checker).pendingType()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1036 +0x7e
go/types.(*Checker).rawExpr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:994 +0x2f9
go/types.(*Checker).expr()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/expr.go:1276 +0x5b
go/types.(*Checker).initVars()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/assignments.go:412 +0x9a9
go/types.(*Checker).shortVarDecl()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/assignments.go:587 +0xe38
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:512 +0x14a4
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:603 +0x8e4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:615 +0x3e84
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:603 +0x8e4
go/types.(*Checker).rangeStmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/range.go:196 +0x66d
go/types.(*Checker).stmt()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:858 +0x2319
go/types.(*Checker).stmtList()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:125 +0xc4
go/types.(*Checker).funcBody()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stmt.go:42 +0x564
go/types.(*Checker).funcDecl.func1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/decl.go:838 +0xb1
go/types.(*Checker).processDelayed()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:595 +0x404
go/types.(*Checker).checkFiles()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:537 +0x6b3
go/types.(*Checker).Files()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/check.go:491 +0x129
go/types.(*Config).Check()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/api.go:492 +0x8c
go/types_test.typecheckFiles()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:408 +0x7fe
go/types_test.(*stdlibChecker).getDirPackage()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:156 +0x2e4
go/types_test.TestStdlib.func2()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:81 +0x105
Goroutine 935 (running) created at:
go/types_test.TestStdlib()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:75 +0x433
testing.tRunner()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2036 +0x21c
testing.(*T).Run.gowrap1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2101 +0x38
Goroutine 1172 (finished) created at:
go/types_test.TestStdlib()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:75 +0x433
testing.tRunner()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2036 +0x21c
testing.(*T).Run.gowrap1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2101 +0x38
==================
680 packages typechecked in 1m8.599427294s
testing.go:1712: race detected during execution of test
Taking a look
Change https://go.dev/cl/729021 mentions this issue: go/types, types2: put Named.finite behind Named.mu
Found new dashboard test flakes for:
#!watchflakes
default <- pkg == "go/types" && test == "TestStdlib"
2025-12-10 21:47 gotip-linux-amd64-longtest-race go@b2a697bd go/types.TestStdlib (log)
=== RUN TestStdlib
package rand
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/rand/rand.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/rand/text.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/rand/util.go
package boring
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/internal/boring/doc.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/internal/boring/notboring.go
package crypto
/home/swarming/.swarming/w/ir/x/w/goroot/src/crypto/crypto.go
...
go/types_test.TestStdlib()
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/types/stdlib_test.go:75 +0x433
testing.tRunner()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2036 +0x21c
testing.(*T).Run.gowrap1()
/home/swarming/.swarming/w/ir/x/w/goroot/src/testing/testing.go:2101 +0x38
==================
680 packages typechecked in 1m5.818982357s
testing.go:1712: race detected during execution of test
--- FAIL: TestStdlib (77.14s)
Just to note, the commit for that recent failure is before the fix.
Found new dashboard test flakes for:
#!watchflakes
default <- pkg == "go/types" && test == "TestStdlib"
2025-12-09 16:51 go1.26-linux-amd64-longtest-race release-branch.go1.26@1274d58d go/types.TestStdlib (log)
=== RUN TestStdlib
package importer
/home/swarming/.swarming/w/ir/x/w/goroot/src/go/importer/importer.go
package countertest
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/vendor/golang.org/x/telemetry/counter/countertest/countertest.go
package generate
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/go/internal/generate/generate.go
package smtp
/home/swarming/.swarming/w/ir/x/w/goroot/src/net/smtp/auth.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/net/smtp/smtp.go
...
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/vendor/github.com/google/pprof/internal/driver/settings.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/vendor/github.com/google/pprof/internal/driver/stacks.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/vendor/github.com/google/pprof/internal/driver/svg.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/vendor/github.com/google/pprof/internal/driver/tagroot.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/vendor/github.com/google/pprof/internal/driver/tempfile.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/vendor/github.com/google/pprof/internal/driver/webhtml.go
/home/swarming/.swarming/w/ir/x/w/goroot/src/cmd/vendor/github.com/google/pprof/internal/driver/webui.go
680 packages typechecked in 1m8.705718953s
testing.go:1712: race detected during execution of test
--- FAIL: TestStdlib (74.92s)