Bug hunt ledger: Go modules #317
Replies: 4 comments
|
[agent] 2026-09-30: Go modules bug-hunt run This is the first run, so the ledger started empty and there were no Tested: main Setup: a hermetic file GOPROXY (plus a Cells
Issues
False positives ruled out
Probe runs
Next
|
|
[agent] 2026-10-01: maintainer note: test global ( This is a maintainer request, not a run report. Add it to the top of the backlog and keep it there until the cells below are covered. Ask: make sure we correctly scan global installs when Where Go modules puts global installs: What to check (prove each with a real global install, not by reading source):
Add OS × Go modules version cells for |
|
[agent] 2026-10-01: Go modules bug-hunt run Tested: main Setup: a hermetic file GOPROXY (zips must be built with Re-triage
Cells (maintainer backlog item 0: global
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
[agent] Progress ledger for the scheduled Go modules bug-hunt routine (label pm:go).
Last updated: 2026-10-01 (run 3), main
2463257(v5 consolidation #277; CLI still reports 4.0.0), latest release 4.0.0 (previous 3.3.0).Coverage matrix
Cells are "pass", "fail #N" or "untested". Every cell uses a real
go build/go runagainst a hermetic file GOPROXY and a hand-staged.socket/manifest.jsonplus blob (thetests/e2e_golang_build.rsshape). Hosted mode needs the wiremock harness (e2e_golang_hosted_build.rs) and hasn't been exercised by this routine yet. Global cells use a realgo installas a non-root user plus a local mock patch API. Rows before run 3 were tested onf6b7fb9; on2463257, #391 and #393 still reproduce.apply(plain)vendor(plain)vendor/dirgo env -wsettingsGlobal (
-g/--global-prefix/SOCKET_GLOBAL)scan -greport (+--json)-g --mode hostedrefusalscan -g --mode agent/get -gapplygo installbinaryrollback -gvex -gBacklog
-g) mode on macOS and Windows and across go 1.16 / 1.21 / 1.26. Linux 1.24/1.25 is done (see the table and Global Go patching (-g) reports success and VEX attests not_affected, but tools already built withgo installkeep running the unpatched code, and nothing tells the user to reinstall them #422). The full checklist is in the 20261001T040000Z entry.bughunt/go/20260930-goenv-vendor,bughunt/go/20260930-windows-applyandbughunt/go/20260930-windows-bisect.git push --deletestill fails from the sandbox (run 3), and this blocks new probe branches.--global-prefixshapes: GOPATH root instead ofpkg/mod(cache/downloadwalk), multi-entry GOPATH, empty or relative GOMODCACHE./v2,+incompatible, CRLF/BOM go.sum,go.work.sum.go getupgrades the patched module, although the go-patches replace no longer applies and the build links the unpatched code #391, Agent-mode Go apply writes a go-patches replace for a module version the build graph doesn't select, reports it applied, and on a go 1.16 go.mod apply --check and vex also report it as patched #392 and A user replace in go.work silently overrides the Socket go.mod replace: Go apply and vendor report success and VEX attests not_affected while the build links the user's target #393 via a probe branch.GOFLAGS=-mod=vendorin the env or GOENV;go work vendor(1.22+) with a committed vendor/.applyfails with "matched no installed package". Decide between limitation and bug.Known non-bugs
patches-api.socket.devis blocked by the sandbox proxy. Stage.socket/manifest.jsonplus blobs locally.proxy.golang.orgIS reachable from the sandbox.applyexit 1), so it can't be compared on these cells. 4.0.0vexneeds an explicit--productin these fixtures (there's no git remote).applyrefuses (exit 1) when go.mod has a user-authoredreplace M => …for the patched module: intended. (The same line in go.work is NOT refused, which is A user replace in go.work silently overrides the Socket go.mod replace: Go apply and vendor report success and VEX attests not_affected while the build links the user's target #393.)repairdoesn't rebuild a deleted.socket/go-patches/copy.repair --helpscopes rebuilding to vendored artifacts; re-runapply.go ... -modcacherwleaves cache FILES read-only (directories only), so it's not a workaround for On Windows, Go apply and vendor always fail with "Access is denied. (os error 5)" because the copied module-cache files keep their read-only attribute #346.manifest_not_found): documented ine2e_golang_build.rs.GOFLAGS=-mod=mod(a go restriction); unset GOFLAGS in go.work fixtures.zip -D(directory entries change the h1 hash, sogo mod verifyfails on a pristine cache). As non-root,chmod -R u+wbeforerm -rfof a module cache. A partly deleted cache survives and contaminates the next run.rollback -gneeds the before blob (fetched frompatches-api.socket.dev, which the sandbox blocks). Stage it in.socket/blobs/and use--offline. A loud failure without it is expected.go mod verifyreportsdir has been modifiedafter a global (-g) in-place patch. That's inherent to patching the module cache in place, and rollback restores it.All reactions