Closed chrisnovakovic closed 1 month ago
This appears to be a regression in Go 1.23.0 - I can't reproduce it with a Go 1.22.5 toolchain.
The culprit is golang.org/x/telemetry
itself - the configstore
package downloads the telemetry config, which is distributed as a Go module, by shelling out to go
without passing -modcacherw
:
After speaking to @peterebden, I think it makes sense to disable this telemetry altogether. Even merely invoking go(1)
is sufficient to cause the telemetry config to be downloaded unless telemetry is explicitly disabled (by writing off
to ~/.config/go/telemetry/mode
). Collecting the telemetry is of questionable benefit anyway given that many invocations of go(1)
will occur in a network-isolated sandbox.
Presumably it is also going to add a bunch of time by re-downloading this in every action, because none of them will ever have a valid Go cache for it.
This was fixed in Go 1.23.1.
Spotted in the context of a recent run of the python-rules release workflow:
and so on. Reproducible locally with
plz build //third_party/go:_difflib#get
in python-rules.This seems to happen because
go mod download
isn't respecting the-modcacherw
flag, and is creating read-only cache directories for module files: