Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/go: livelock when computing module graph in a workspace with GOPROXY=off #53874

Closed
bcmills opened this issue Jul 14, 2022 · 4 comments
Closed
Assignees
Labels
FrozenDueToAge GoCommand cmd/go modules NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@bcmills
Copy link
Contributor

bcmills commented Jul 14, 2022

What version of Go are you using (go version)?

$ go1.19rc2 version
go version go1.19rc2 linux/amd64

Does this issue reproduce with the latest release?

Yes: it reproduces with go1.18.4, but not with go1.17.12 (because the latter does not support workspaces).

What operating system and processor architecture are you using (go env)?

go env Output
$ go1.19rc2 env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/usr/local/google/home/bcmills/.cache/go-build"
GOENV="/usr/local/google/home/bcmills/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/tmp/tmp.xAAer2eJsB/.gopath/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/tmp/tmp.xAAer2eJsB/.gopath"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/google/home/bcmills/sdk/go1.19rc2"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/google/home/bcmills/sdk/go1.19rc2/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.19rc2"
GCCGO="/usr/local/google/home/bcmills/bin/gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="c++"
CGO_ENABLED="1"
GOMOD="/tmp/tmp.xAAer2eJsB/go.mod"
GOWORK="/tmp/tmp.xAAer2eJsB/go.work"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build3817314018=/tmp/go-build -gno-record-gcc-switches"

What did you do?

In the workspace given below, run:

go1.19rc2 clean -modcache
GOPROXY=off go1.19rc2 list -m all
txtar workspace
-- example.go --
package example

import _ "golang.org/x/mod/sumdb"
-- go.mod --
module example

go 1.19

require golang.org/x/mod v0.5.1

require (
	golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 // indirect
	golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 // indirect
)
-- go.sum --
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-- go.work --
go 1.19

use (
	.
	./sub
)
-- go.work.sum --
golang.org/x/mod v0.5.0 h1:UG21uOlmZabA4fW5i7ZX6bjw1xELEGg/ZLgZq9auk/Q=
golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-- sub/go.mod --
module example/sub

go 1.19

require golang.org/x/mod v0.5.1

require (
	golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect
	golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 // indirect
)
-- sub/go.sum --
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-- sub/sub.go --
package example

import _ "golang.org/x/mod/sumdb"

What did you expect to see?

An error mentioning GOPROXY=off, like the one produced by go1.17.12 but ideally cleaner:

$ GOPROXY=off go1.17.12 list -m all
go list -m: module lookup disabled by GOPROXY=off
go list -m: module lookup disabled by GOPROXY=off
go list -m: module lookup disabled by GOPROXY=off
go list -m: golang.org/x/crypto@v0.0.0-20191011191535-87dc89f01550: module lookup disabled by GOPROXY=off

What did you see instead?

The go list command hangs indefinitely. Sending SIGQUIT gives the following goroutine dump, which looks to me like a livelock of some sort.

$ GOPROXY=off go1.19rc2 list -m all
^\SIGQUIT: quit
PC=0x469ec1 m=0 sigcode=128

goroutine 0 [idle]:
runtime.futex()
        /usr/local/go/src/runtime/sys_linux_amd64.s:559 +0x21 fp=0x7ffe6ec97290 sp=0x7ffe6ec97288 pc=0x469ec1
runtime.futexsleep(0x12d0ef?, 0x6ec97310?, 0x4463cb?)
        /usr/local/go/src/runtime/os_linux.go:69 +0x36 fp=0x7ffe6ec972e0 sp=0x7ffe6ec97290 pc=0x433976
runtime.notesleep(0xe34f48)
        /usr/local/go/src/runtime/lock_futex.go:160 +0x87 fp=0x7ffe6ec97318 sp=0x7ffe6ec972e0 pc=0x40d707
runtime.mPark(...)
        /usr/local/go/src/runtime/proc.go:1457
runtime.stopm()
        /usr/local/go/src/runtime/proc.go:2239 +0x8c fp=0x7ffe6ec97348 sp=0x7ffe6ec97318 pc=0x43e02c
runtime.findRunnable()
        /usr/local/go/src/runtime/proc.go:2866 +0x9e8 fp=0x7ffe6ec97438 sp=0x7ffe6ec97348 pc=0x43f6c8
runtime.schedule()
        /usr/local/go/src/runtime/proc.go:3206 +0xbe fp=0x7ffe6ec97470 sp=0x7ffe6ec97438 pc=0x4404fe
runtime.park_m(0xc0001b4ea0?)
        /usr/local/go/src/runtime/proc.go:3355 +0x14d fp=0x7ffe6ec974a0 sp=0x7ffe6ec97470 pc=0x440a2d
runtime.mcall()
        /usr/local/go/src/runtime/asm_amd64.s:448 +0x43 fp=0x7ffe6ec974b0 sp=0x7ffe6ec974a0 pc=0x465da3

goroutine 1 [runnable]:
runtime.chansend(0xc00012a6c0, 0xc000160370, 0x1, 0x5baf85?)
        /usr/local/go/src/runtime/chan.go:160 +0x631 fp=0xc000160330 sp=0xc000160328 pc=0x407a11
runtime.chansend1(0x4072e6?, 0x60?)
        /usr/local/go/src/runtime/chan.go:145 +0x1d fp=0xc000160360 sp=0xc000160330 pc=0x4073bd
cmd/go/internal/par.(*Queue).Idle.func1()
        /usr/local/go/src/cmd/go/internal/par/queue.go:78 +0x45 fp=0xc0001603a8 sp=0xc000160360 pc=0x5baf85
cmd/go/internal/par.(*Queue).Idle(0xc0001119d0)
        /usr/local/go/src/cmd/go/internal/par/queue.go:87 +0x114 fp=0xc000160448 sp=0xc0001603a8 pc=0x5baef4
cmd/go/internal/modload.readModGraph({0x0?, 0xfffffffffffffffd?}, 0x2, {0xc0001cc1c0?, 0x2, 0x2})
        /usr/local/go/src/cmd/go/internal/modload/buildlist.go:431 +0x4ac fp=0xc000160978 sp=0xc000160448 pc=0x7ed76c
cmd/go/internal/modload.(*Requirements).Graph.func1()
        /usr/local/go/src/cmd/go/internal/modload/buildlist.go:242 +0x3e fp=0xc0001609d8 sp=0xc000160978 pc=0x7ed0de
sync.(*Once).doSlow(0x0?, 0x0?)
        /usr/local/go/src/sync/once.go:74 +0xc2 fp=0xc000160a38 sp=0xc0001609d8 pc=0x472282
sync.(*Once).Do(...)
        /usr/local/go/src/sync/once.go:65
cmd/go/internal/modload.(*Requirements).Graph(0xc00012e230?, {0xb2d2b0?, 0xc000116000?})
        /usr/local/go/src/cmd/go/internal/modload/buildlist.go:241 +0x74 fp=0xc000160a90 sp=0xc000160a38 pc=0x7ecff4
cmd/go/internal/modload.expandGraph({0xb2d2b0, 0xc000116000}, 0xc00012e230)
        /usr/local/go/src/cmd/go/internal/modload/buildlist.go:559 +0x45 fp=0xc000160b18 sp=0xc000160a90 pc=0x7eed65
cmd/go/internal/modload.listModules({0xb2d2b0, 0xc000116000}, 0xc00012e230, {0xc00012c030, 0x1, 0x2?}, 0x0, 0x1e?)
        /usr/local/go/src/cmd/go/internal/modload/list.go:165 +0x5b7 fp=0xc000160e60 sp=0xc000160b18 pc=0x809917
cmd/go/internal/modload.ListModules({0xb2d2b0, 0xc000116000}, {0xc00012c030, 0x1, 0x1}, 0x0, {0x0?, 0xc00017a000?})
        /usr/local/go/src/cmd/go/internal/modload/list.go:70 +0x3cd fp=0xc000161130 sp=0xc000160e60 pc=0x808e0d
cmd/go/internal/list.runList({0xb2d2b0?, 0xc000116000}, 0xc000148240?, {0xc00012c030?, 0x1, 0x1})
        /usr/local/go/src/cmd/go/internal/list/list.go:558 +0x2b65 fp=0xc000161d88 sp=0xc000161130 pc=0x905a45
main.invoke(0xe26600, {0xc00012c010, 0x3, 0x3})
        /usr/local/go/src/cmd/go/main.go:225 +0x34e fp=0xc000161e60 sp=0xc000161d88 pc=0x93ff4e
main.main()
        /usr/local/go/src/cmd/go/main.go:179 +0x7d1 fp=0xc000161f80 sp=0xc000161e60 pc=0x93f8d1
runtime.main()
        /usr/local/go/src/runtime/proc.go:250 +0x212 fp=0xc000161fe0 sp=0xc000161f80 pc=0x439e72
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000161fe8 sp=0xc000161fe0 pc=0x467fe1

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005efb0 sp=0xc00005ef90 pc=0x43a236
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.forcegchelper()
        /usr/local/go/src/runtime/proc.go:302 +0xad fp=0xc00005efe0 sp=0xc00005efb0 pc=0x43a0cd
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005efe8 sp=0xc00005efe0 pc=0x467fe1
created by runtime.init.6
        /usr/local/go/src/runtime/proc.go:290 +0x25

goroutine 18 [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005a790 sp=0xc00005a770 pc=0x43a236
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.bgsweep(0x0?)
        /usr/local/go/src/runtime/mgcsweep.go:297 +0xd7 fp=0xc00005a7c8 sp=0xc00005a790 pc=0x426917
runtime.gcenable.func1()
        /usr/local/go/src/runtime/mgc.go:178 +0x26 fp=0xc00005a7e0 sp=0xc00005a7c8 pc=0x41b5a6
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005a7e8 sp=0xc00005a7e0 pc=0x467fe1
created by runtime.gcenable
        /usr/local/go/src/runtime/mgc.go:178 +0x6b

goroutine 19 [GC scavenge wait]:
runtime.gopark(0x46187affab5ec?, 0x72fa35?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005af70 sp=0xc00005af50 pc=0x43a236
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.(*scavengerState).park(0xe336a0)
        /usr/local/go/src/runtime/mgcscavenge.go:389 +0x53 fp=0xc00005afa0 sp=0xc00005af70 pc=0x424973
runtime.bgscavenge(0x0?)
        /usr/local/go/src/runtime/mgcscavenge.go:622 +0x65 fp=0xc00005afc8 sp=0xc00005afa0 pc=0x424f65
runtime.gcenable.func2()
        /usr/local/go/src/runtime/mgc.go:179 +0x26 fp=0xc00005afe0 sp=0xc00005afc8 pc=0x41b546
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005afe8 sp=0xc00005afe0 pc=0x467fe1
created by runtime.gcenable
        /usr/local/go/src/runtime/mgc.go:179 +0xaa

goroutine 34 [finalizer wait]:
runtime.gopark(0xe34e00?, 0xc0001041a0?, 0x0?, 0x0?, 0xc00005e770?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005e628 sp=0xc00005e608 pc=0x43a236
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.runfinq()
        /usr/local/go/src/runtime/mfinal.go:180 +0x10f fp=0xc00005e7e0 sp=0xc00005e628 pc=0x41a6af
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005e7e8 sp=0xc00005e7e0 pc=0x467fe1
created by runtime.createfing
        /usr/local/go/src/runtime/mfinal.go:157 +0x45

goroutine 11677 [GC worker (idle)]:
runtime.gopark(0x46187b42cf9cb?, 0x1?, 0xc0?, 0x79?, 0x408059?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc0001c0750 sp=0xc0001c0730 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0001c07e0 sp=0xc0001c0750 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0001c07e8 sp=0xc0001c07e0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11676 [GC worker (idle)]:
runtime.gopark(0x46187b42c1b86?, 0x1?, 0x96?, 0xf8?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc0001c1750 sp=0xc0001c1730 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0001c17e0 sp=0xc0001c1750 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0001c17e8 sp=0xc0001c17e0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11332 [GC worker (idle)]:
runtime.gopark(0x46187b42cfa57?, 0x1?, 0x47?, 0x10?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc0001c1f50 sp=0xc0001c1f30 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0001c1fe0 sp=0xc0001c1f50 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0001c1fe8 sp=0xc0001c1fe0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11675 [GC worker (idle)]:
runtime.gopark(0xe65820?, 0x1?, 0x75?, 0x14?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc0001c0f50 sp=0xc0001c0f30 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0001c0fe0 sp=0xc0001c0f50 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0001c0fe8 sp=0xc0001c0fe0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11674 [GC worker (idle)]:
runtime.gopark(0xc00005f7d0?, 0x5badc8?, 0x60?, 0x69?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005f750 sp=0xc00005f730 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc00005f7e0 sp=0xc00005f750 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005f7e8 sp=0xc00005f7e0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11333 [GC worker (idle)]:
runtime.gopark(0xe65820?, 0x1?, 0x1b?, 0x17?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005ff50 sp=0xc00005ff30 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc00005ffe0 sp=0xc00005ff50 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005ffe8 sp=0xc00005ffe0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11655 [GC worker (idle)]:
runtime.gopark(0x4618759621988?, 0x1?, 0x89?, 0x81?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc0001bcf50 sp=0xc0001bcf30 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0001bcfe0 sp=0xc0001bcf50 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0001bcfe8 sp=0xc0001bcfe0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11656 [GC worker (idle)]:
runtime.gopark(0x461878ece946e?, 0x1?, 0x2e?, 0x42?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc0001bd750 sp=0xc0001bd730 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0001bd7e0 sp=0xc0001bd750 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0001bd7e8 sp=0xc0001bd7e0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11678 [GC worker (idle)]:
runtime.gopark(0x46187b42bf969?, 0x1?, 0x6a?, 0x3a?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005b750 sp=0xc00005b730 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc00005b7e0 sp=0xc00005b750 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005b7e8 sp=0xc00005b7e0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11679 [GC worker (idle)]:
runtime.gopark(0xe65820?, 0x3?, 0x68?, 0x8b?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005bf50 sp=0xc00005bf30 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc00005bfe0 sp=0xc00005bf50 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005bfe8 sp=0xc00005bfe0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11680 [GC worker (idle)]:
runtime.gopark(0xe65820?, 0x1?, 0x66?, 0x54?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005c750 sp=0xc00005c730 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc00005c7e0 sp=0xc00005c750 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005c7e8 sp=0xc00005c7e0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11681 [GC worker (idle)]:
runtime.gopark(0xe65820?, 0x1?, 0x62?, 0xca?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005cf50 sp=0xc00005cf30 pc=0x43a236
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc00005cfe0 sp=0xc00005cf50 pc=0x41d6f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005cfe8 sp=0xc00005cfe0 pc=0x467fe1
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 2405496 [chan receive]:
runtime.gopark(0x22?, 0x7ee2e0?, 0x50?, 0xc1?, 0x13?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc0006deea8 sp=0xc0006dee88 pc=0x43a236
runtime.chanrecv(0xc00012a6c0, 0xc0006defa8, 0x1)
        /usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc0006def38 sp=0xc0006deea8 pc=0x40861b
runtime.chanrecv1(0xc00032a4e0?, 0x0?)
        /usr/local/go/src/runtime/chan.go:442 +0x18 fp=0xc0006def60 sp=0xc0006def38 pc=0x408118
cmd/go/internal/par.(*Queue).Add.func1()
        /usr/local/go/src/cmd/go/internal/par/queue.go:60 +0xa5 fp=0xc0006defe0 sp=0xc0006def60 pc=0x5bad05
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0006defe8 sp=0xc0006defe0 pc=0x467fe1
created by cmd/go/internal/par.(*Queue).Add
        /usr/local/go/src/cmd/go/internal/par/queue.go:56 +0x225

rax    0xca
rbx    0x0
rcx    0x469ec3
rdx    0x0
rdi    0xe34f48
rsi    0x80
rbp    0x7ffe6ec972d0
rsp    0x7ffe6ec97288
r8     0x0
r9     0x0
r10    0x0
r11    0x286
r12    0x7ffe6ec972f0
r13    0x77
r14    0xe33c40
r15    0xffffffffffffffff
rip    0x469ec1
rflags 0x286
cs     0x33
fs     0x0
gs     0x0

This was found while investigating #51946.

@bcmills bcmills added NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. modules labels Jul 14, 2022
@bcmills bcmills added this to the Go1.20 milestone Jul 14, 2022
@bcmills
Copy link
Contributor Author

bcmills commented Jul 14, 2022

@gopherbot, please backport to Go 1.18 and 1.19

@gopherbot
Copy link

Backport issue(s) opened: #53875 (for 1.18), #53876 (for 1.19).

Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://go.dev/wiki/MinorReleases.

@gopherbot
Copy link

Change https://go.dev/cl/417594 mentions this issue: cmd/go: avoid re-enqueuing workspace dependencies with errors

@bcmills bcmills self-assigned this Jul 14, 2022
@gopherbot
Copy link

Change https://go.dev/cl/417656 mentions this issue: cmd/go: avoid re-enqueuing workspace dependencies with errors

gopherbot pushed a commit that referenced this issue Jul 27, 2022
…cies with errors

Fixes #53875.
Updates #53874.

Change-Id: I41ab15cb9b86b807a9d9ad21fe21fb7aa5fbb46f
Reviewed-on: https://go-review.googlesource.com/c/go/+/417594
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
(cherry picked from commit a906d3d)
Reviewed-on: https://go-review.googlesource.com/c/go/+/417656
@dmitshur dmitshur added NeedsFix The path to resolution is known, but the work has not been done. and removed NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Aug 1, 2022
jproberts pushed a commit to jproberts/go that referenced this issue Aug 10, 2022
Fixes golang#53874.

Change-Id: I41ab15cb9b86b807a9d9ad21fe21fb7aa5fbb46f
Reviewed-on: https://go-review.googlesource.com/c/go/+/417594
Run-TryBot: Bryan Mills <bcmills@google.com>
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
@golang golang locked and limited conversation to collaborators Aug 1, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge GoCommand cmd/go modules NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

3 participants