Skip to content

runtime: unexpected hangs by cmd/go and cmd/compile #29385

Closed
@ianlancetaylor

Description

@ianlancetaylor

Several times recently while running all.bash I've seen the cmd/compile or cmd/go programs hang without making progress. These happen at different times during all.bash, usually in the cmd/go test or the final test directory (presumably because those run a lot of commands).

Here is a case that just happened with cmd/go hanging in the final test directory. This is the output after kill -QUIT.

##### ../test
# go run run.go -- fixedbugs/issue7867.go
exit status 2
SIGQUIT: quit
PC=0x45b230 m=0 sigcode=0

goroutine 0 [idle]:
runtime.epollwait(0x7ffe00000004, 0x7ffe63f53620, 0xffffffff00000080, 0x7f4b00000000, 0xffffffff000000e9, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/home/iant/go/src/runtime/sys_linux_amd64.s:675 +0x20
runtime.netpoll(0xc000042501, 0xc000038f01)
	/home/iant/go/src/runtime/netpoll_epoll.go:71 +0x125
runtime.findrunnable(0xc000038f00, 0x0)
	/home/iant/go/src/runtime/proc.go:2380 +0x4f1
runtime.schedule()
	/home/iant/go/src/runtime/proc.go:2525 +0x208
runtime.goexit0(0xc0003b0300)
	/home/iant/go/src/runtime/proc.go:2722 +0x1d7
runtime.mcall(0x0)
	/home/iant/go/src/runtime/asm_amd64.s:299 +0x5b

goroutine 1 [semacquire, 1 minutes]:
sync.runtime_Semacquire(0xc00044da78)
	/home/iant/go/src/runtime/sema.go:56 +0x39
sync.(*WaitGroup).Wait(0xc00044da70)
	/home/iant/go/src/sync/waitgroup.go:130 +0x64
cmd/go/internal/work.(*Builder).Do(0xc000217040, 0xc000588dc0)
	/home/iant/go/src/cmd/go/internal/work/exec.go:174 +0x3bf
cmd/go/internal/run.runRun(0xe18dc0, 0xc000020130, 0x1, 0x1)
	/home/iant/go/src/cmd/go/internal/run/run.go:137 +0x53a
main.main()
	/home/iant/go/src/cmd/go/main.go:219 +0x82d

goroutine 5 [syscall, 1 minutes]:
os/signal.signal_recv(0x0)
	/home/iant/go/src/runtime/sigqueue.go:139 +0x9c
os/signal.loop()
	/home/iant/go/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.init.0
	/home/iant/go/src/os/signal/signal_unix.go:29 +0x41

goroutine 22 [select, 1 minutes]:
cmd/go/internal/work.(*Builder).Do.func2(0xc00044da70, 0xc000217040, 0xc0002a9fa0)
	/home/iant/go/src/cmd/go/internal/work/exec.go:155 +0xfb
created by cmd/go/internal/work.(*Builder).Do
	/home/iant/go/src/cmd/go/internal/work/exec.go:152 +0x39b

goroutine 23 [select, 1 minutes]:
cmd/go/internal/work.(*Builder).Do.func2(0xc00044da70, 0xc000217040, 0xc0002a9fa0)
	/home/iant/go/src/cmd/go/internal/work/exec.go:155 +0xfb
created by cmd/go/internal/work.(*Builder).Do
	/home/iant/go/src/cmd/go/internal/work/exec.go:152 +0x39b

goroutine 24 [select, 1 minutes]:
cmd/go/internal/work.(*Builder).Do.func2(0xc00044da70, 0xc000217040, 0xc0002a9fa0)
	/home/iant/go/src/cmd/go/internal/work/exec.go:155 +0xfb
created by cmd/go/internal/work.(*Builder).Do
	/home/iant/go/src/cmd/go/internal/work/exec.go:152 +0x39b

goroutine 25 [select, 1 minutes]:
cmd/go/internal/work.(*Builder).Do.func2(0xc00044da70, 0xc000217040, 0xc0002a9fa0)
	/home/iant/go/src/cmd/go/internal/work/exec.go:155 +0xfb
created by cmd/go/internal/work.(*Builder).Do
	/home/iant/go/src/cmd/go/internal/work/exec.go:152 +0x39b

goroutine 26 [select, 1 minutes]:
cmd/go/internal/work.(*Builder).Do.func2(0xc00044da70, 0xc000217040, 0xc0002a9fa0)
	/home/iant/go/src/cmd/go/internal/work/exec.go:155 +0xfb
created by cmd/go/internal/work.(*Builder).Do
	/home/iant/go/src/cmd/go/internal/work/exec.go:152 +0x39b

goroutine 27 [running]:
	goroutine running on other thread; stack unavailable
created by cmd/go/internal/work.(*Builder).Do
	/home/iant/go/src/cmd/go/internal/work/exec.go:152 +0x39b

goroutine 28 [select, 1 minutes]:
cmd/go/internal/work.(*Builder).Do.func2(0xc00044da70, 0xc000217040, 0xc0002a9fa0)
	/home/iant/go/src/cmd/go/internal/work/exec.go:155 +0xfb
created by cmd/go/internal/work.(*Builder).Do
	/home/iant/go/src/cmd/go/internal/work/exec.go:152 +0x39b

goroutine 29 [running]:
	goroutine running on other thread; stack unavailable
created by cmd/go/internal/work.(*Builder).Do
	/home/iant/go/src/cmd/go/internal/work/exec.go:152 +0x39b

rax    0xfffffffffffffffc
rbx    0xffffffff
rcx    0x45b230
rdx    0x80
rdi    0x4
rsi    0x7ffe63f53620
rbp    0x7ffe63f53c20
rsp    0x7ffe63f535e0
r8     0x0
r9     0x3
r10    0xffffffff
r11    0x202
r12    0x4
r13    0xde8fc0
r14    0x0
r15    0x0
rip    0x45b230
rflags 0x202
cs     0x33
fs     0x0
gs     0x0

FAIL	fixedbugs/issue7867.go	106.601s
2018/12/21 13:08:52 Failed: exit status 1

I'm filing this in case anybody else sees this. On the builders this would show up as a timeout; we normally ignore timeouts in the builders and trybots.

CC @aclements @randall77

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.release-blocker

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions