Skip to content

runtime: runtime.test gets DefaultGODEBUG with panicnil=1,asynctimerchan=1 #77641

@kevinburke

Description

@kevinburke

Go version

go version go1.27-devel_f65692ea56 Sun Feb 15 07:19:01 2026 -0800 darwin/arm64

Output of go env in your module/workspace:

AR='ar'
CC='clang'
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_ENABLED='1'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
CXX='clang++'
GCCGO='gccgo'
GO111MODULE='off'
GOARCH='arm64'
GOARM64='v8.0'
GOAUTH='netrc'
GOBIN=''
GOCACHE='/Users/kevin/Library/Caches/go-build'
GOCACHEPROG=''
GODEBUG=''
GOENV='/Users/kevin/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFIPS140='off'
GOFLAGS=''
GOGCCFLAGS='-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/gh/xgxt3m8d5kd3353q6wyl6c1m0000gn/T/go-build544050156=/tmp/go-build -gno-record-gcc-switches -fno-common'
GOHOSTARCH='arm64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMOD=''
GOMODCACHE='/Users/kevin/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/kevin'
GOPRIVATE=''
GOPROXY='direct'
GOROOT='/Users/kevin/go'
GOSUMDB='sum.golang.org'
GOTELEMETRY='local'
GOTELEMETRYDIR='/Users/kevin/Library/Application Support/go/telemetry'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/Users/kevin/go/pkg/tool/darwin_arm64'
GOVCS=''
GOVERSION='go1.27-devel_f65692ea56 Sun Feb 15 07:19:01 2026 -0800'
GOWORK=''
PKG_CONFIG='pkg-config'

What did you do?

Compile Go tip using 1.25.7 as GOROOT_BOOTSTRAP.

Run the tests with:

GOENV=off GOCACHE=/tmp/go-build-cache ./bin/go test ./src/runtime -count=1

What did you see happen?

I see the following error(s), in addition to others:

--- FAIL: TestSynctestCondSignalFromNoBubble (0.03s)
    --- FAIL: TestSynctestCondSignalFromNoBubble/SynctestCond/signal/no_bubble (0.01s)
        crash_test.go:1258: /var/folders/gh/xgxt3m8d5kd3353q6wyl6c1m0000gn/T/go-build2397586704/testprog.exe SynctestCond/signal/no_bubble: exit status 2
        crash_test.go:1261: output:
            panic: synctest.Run not supported with asynctimerchan!=0 [recovered, repanicked]

            goroutine 6 [running]:
            sync.(*WaitGroup).Go.func1.1()
            	/Users/kevin/go/src/sync/waitgroup.go:251 +0x48
            panic({0x1045138f8?, 0x1044f0530?})
            	/Users/kevin/go/src/runtime/panic.go:860 +0x134
            internal/synctest.Run(0x2e2e71c32220)
            	/Users/kevin/go/src/runtime/synctest.go:173 +0x318
            main.synctestCond.func1()
            	/Users/kevin/go/src/runtime/testdata/testprog/synctest.go:44 +0x88
            sync.(*WaitGroup).Go.func1()
            	/Users/kevin/go/src/sync/waitgroup.go:258 +0x48
            created by sync.(*WaitGroup).Go in goroutine 1
            	/Users/kevin/go/src/sync/waitgroup.go:238 +0x74


            want output containing: fatal error: semaphore wake of synctest goroutine from outside bubble
    --- FAIL: TestSynctestCondSignalFromNoBubble/SynctestCond/broadcast/no_bubble (0.01s)
        crash_test.go:1258: /var/folders/gh/xgxt3m8d5kd3353q6wyl6c1m0000gn/T/go-build2397586704/testprog.exe SynctestCond/broadcast/no_bubble: exit status 2
        crash_test.go:1261: output:
            panic: synctest.Run not supported with asynctimerchan!=0 [recovered, repanicked]

            goroutine 18 [running]:
            sync.(*WaitGroup).Go.func1.1()
            	/Users/kevin/go/src/sync/waitgroup.go:251 +0x48
            panic({0x100cfb8f8?, 0x100cd8530?})
            	/Users/kevin/go/src/runtime/panic.go:860 +0x134
            internal/synctest.Run(0x2b75475321e0)
            	/Users/kevin/go/src/runtime/synctest.go:173 +0x318
            main.synctestCond.func1()
            	/Users/kevin/go/src/runtime/testdata/testprog/synctest.go:44 +0x88
            sync.(*WaitGroup).Go.func1()
            	/Users/kevin/go/src/sync/waitgroup.go:258 +0x48
            created by sync.(*WaitGroup).Go in goroutine 1
            	/Users/kevin/go/src/sync/waitgroup.go:238 +0x74


            want output containing: fatal error: semaphore wake of synctest goroutine from outside bubble

What did you expect to see?

I expected the tests to pass or get marked as 'Skip' if the test cannot pass in the current environment and the behavior is expected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugReportIssues describing a possible bug in the Go implementation.compiler/runtimeIssues related to the Go compiler and/or runtime.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions