Skip to content

cmd/go: go test -cover fails with "go tool covdata: fork/exec ... text file busy" #78204

@DmitriiDunaev

Description

@DmitriiDunaev

Go version

go version go1.26.1 linux/amd64

Output of go env in your module/workspace:

AR='ar'
CC='gcc'
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_ENABLED='1'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
CXX='g++'
GCCGO='gccgo'
GO111MODULE=''
GOAMD64='v1'
GOARCH='amd64'
GOAUTH='netrc'
GOBIN=''
GOCACHE='/root/.cache/go-build'
GOCACHEPROG=''
GODEBUG=''
GOENV='/root/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFIPS140='off'
GOFLAGS='-buildvcs=false'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-switches -fmessage-length=0 -ffile-prefix-map=/tmp/go-build1945733064=/tmp/go-build -gno-record-gcc-switches'
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMOD='/code/go.mod'
GOMODCACHE='/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTELEMETRY='local'
GOTELEMETRYDIR='/root/.config/go/telemetry'
GOTMPDIR=''
GOTOOLCHAIN='local'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.26.1'
GOWORK=''
PKG_CONFIG='pkg-config'

What did you do?

Run tests with coverage in a large module (many packages), inside a fresh Docker container, with race detector:

go test -race -timeout 1h -count 1 -failfast -v -cover ./...

GOEXPERIMENT=cgocheck2 is set in our CI.
Environment: Linux (in Docker), ephemeral container (docker run --rm), no host volume for GOCACHE — cache lives only inside the container. The failure is intermittent: the same pipeline and commit sometimes succeed, sometimes fail with the error below. When it fails, it always fails at the same point.

This started after upgrading from Go 1.25.7 to 1.26.1; we never saw this with 1.25.7.

What did you see happen?

go tool covdata: fork/exec /root/.cache/go-build/d8/d83244448026d88d5f384f2244085edfcb10a8ab385e5d3a32524ca0ea37e7b4-d/covdata: text file busy

The go test process then exits with a non-zero status. All test packages that had already run reported PASS. The error is intermittent: re-running the same command on the same commit often succeeds.

What did you expect to see?

Tests should complete successfully

Metadata

Metadata

Assignees

Labels

BugReportIssues describing a possible bug in the Go implementation.GoCommandcmd/goNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

Type

No type

Projects

Status

Todo

Relationships

None yet

Development

No branches or pull requests

Issue actions