Skip to content

[23.0 backport] cmd/dockerd: use default SIGQUIT behaviour#44831

Merged
neersighted merged 1 commit into
moby:23.0from
thaJeztah:23.0_backport_default_sigquit_handler
Jan 17, 2023
Merged

[23.0 backport] cmd/dockerd: use default SIGQUIT behaviour#44831
neersighted merged 1 commit into
moby:23.0from
thaJeztah:23.0_backport_default_sigquit_handler

Conversation

@thaJeztah
Copy link
Copy Markdown
Member


dockerd handles SIGQUIT by dumping all goroutine stacks to standard error and exiting. In contrast, the Go runtime's default SIGQUIT behaviour... dumps all goroutine stacks to standard error and exits. The default SIGQUIT behaviour is implemented directly in the runtime's signal handler, and so is both more robust to bugs in the Go runtime and does not perturb the state of the process to anywhere near same degree as dumping goroutine stacks from a user goroutine. The only notable difference from a user's perspective is that the process exits with status 2 instead of 128+SIGQUIT.

- What I did
Removed special handling of SIGQUIT so that the default behaviour applies.

- How I did it

- How to verify it

Start dockerd in the foreground and press Ctrl+\
INFO[2023-01-10T21:49:18.298191503Z] API listen on /var/run/docker.sock
^\SIGQUIT: quit
PC=0x55b049d6ada1 m=0 sigcode=128

goroutine 0 [idle]:
runtime.futex()
	/usr/local/go/src/runtime/sys_linux_amd64.s:559 +0x21 fp=0x7ffd274e41b0 sp=0x7ffd274e41a8 pc=0x55b049d6ada1
runtime.futexsleep(0x55b049d2fc00?, 0x4d565020?, 0xc000062000?)
	/usr/local/go/src/runtime/os_linux.go:69 +0x36 fp=0x7ffd274e4200 sp=0x7ffd274e41b0 pc=0x55b049d2fb96
runtime.notesleep(0x55b04d565168)
	/usr/local/go/src/runtime/lock_futex.go:160 +0x87 fp=0x7ffd274e4238 sp=0x7ffd274e4200 pc=0x55b049d03e47
runtime.mPark()
	/usr/local/go/src/runtime/proc.go:1457 +0x25 fp=0x7ffd274e4258 sp=0x7ffd274e4238 pc=0x55b049d391e5
runtime.stoplockedm()
	/usr/local/go/src/runtime/proc.go:2448 +0x65 fp=0x7ffd274e42a8 sp=0x7ffd274e4258 pc=0x55b049d3ade5
runtime.schedule()
	/usr/local/go/src/runtime/proc.go:3193 +0x3d fp=0x7ffd274e42e0 sp=0x7ffd274e42a8 pc=0x55b049d3cabd
runtime.park_m(0xc0000061a0?)
	/usr/local/go/src/runtime/proc.go:3363 +0x14d fp=0x7ffd274e4310 sp=0x7ffd274e42e0 pc=0x55b049d3d06d
runtime.mcall()
	/usr/local/go/src/runtime/asm_amd64.s:448 +0x45 fp=0x7ffd274e4320 sp=0x7ffd274e4310 pc=0x55b049d66bc5

goroutine 1 [chan receive, locked to thread]:
runtime.gopark(0x18?, 0xc000cbf8f8?, 0x3f?, 0x56?, 0x55b04d565020?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00109f878 sp=0xc00109f858 pc=0x55b049d36856
runtime.chanrecv(0xc0000ab320, 0xc000cbfb70, 0x1)
	/usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc00109f908 sp=0xc00109f878 pc=0x55b049cfe7bb
runtime.chanrecv1(0xc000999200?, 0x0?)
	/usr/local/go/src/runtime/chan.go:442 +0x18 fp=0xc00109f930 sp=0xc00109f908 pc=0x55b049cfe2b8
main.(*DaemonCli).start(0xc000999200, 0xc000b6e310)
	/go/src/github.com/docker/docker/cmd/dockerd/daemon.go:253 +0x1435 fp=0xc00109fd08 sp=0xc00109f930 pc=0x55b04b797695
main.runDaemon(...)
	/go/src/github.com/docker/docker/cmd/dockerd/docker_unix.go:14
main.newDaemonCommand.func1(0xc0000d6000?, {0x55b04d596318?, 0x0?, 0x0?})
	/go/src/github.com/docker/docker/cmd/dockerd/docker.go:37 +0x5e fp=0xc00109fd30 sp=0xc00109fd08 pc=0x55b04b79d99e
github.com/docker/docker/vendor/github.com/spf13/cobra.(*Command).execute(0xc0000d6000, {0xc000052230, 0x0, 0x0})
	/go/src/github.com/docker/docker/vendor/github.com/spf13/cobra/command.go:916 +0x862 fp=0xc00109fe68 sp=0xc00109fd30 pc=0x55b049ef05e2
github.com/docker/docker/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc0000d6000)
	/go/src/github.com/docker/docker/vendor/github.com/spf13/cobra/command.go:1044 +0x3bd fp=0xc00109ff20 sp=0xc00109fe68 pc=0x55b049ef0edd
github.com/docker/docker/vendor/github.com/spf13/cobra.(*Command).Execute(...)
	/go/src/github.com/docker/docker/vendor/github.com/spf13/cobra/command.go:968
main.main()
	/go/src/github.com/docker/docker/cmd/dockerd/docker.go:101 +0x15d fp=0xc00109ff80 sp=0xc00109ff20 pc=0x55b04b79dbbd
runtime.main()
	/usr/local/go/src/runtime/proc.go:250 +0x213 fp=0xc00109ffe0 sp=0xc00109ff80 pc=0x55b049d36493
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00109ffe8 sp=0xc00109ffe0 pc=0x55b049d68e81

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000074fb0 sp=0xc000074f90 pc=0x55b049d36856
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.forcegchelper()
	/usr/local/go/src/runtime/proc.go:302 +0xad fp=0xc000074fe0 sp=0xc000074fb0 pc=0x55b049d366ed
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000074fe8 sp=0xc000074fe0 pc=0x55b049d68e81
created by runtime.init.6
	/usr/local/go/src/runtime/proc.go:290 +0x25

goroutine 3 [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000075790 sp=0xc000075770 pc=0x55b049d36856
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.bgsweep(0x0?)
	/usr/local/go/src/runtime/mgcsweep.go:297 +0xd7 fp=0xc0000757c8 sp=0xc000075790 pc=0x55b049d1f737
runtime.gcenable.func1()
	/usr/local/go/src/runtime/mgc.go:178 +0x26 fp=0xc0000757e0 sp=0xc0000757c8 pc=0x55b049d142a6
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000757e8 sp=0xc0000757e0 pc=0x55b049d68e81
created by runtime.gcenable
	/usr/local/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]:
runtime.gopark(0xc00005e070?, 0x55b04bb75bc8?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000075f70 sp=0xc000075f50 pc=0x55b049d36856
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.(*scavengerState).park(0x55b04d564420)
	/usr/local/go/src/runtime/mgcscavenge.go:389 +0x53 fp=0xc000075fa0 sp=0xc000075f70 pc=0x55b049d1d713
runtime.bgscavenge(0x0?)
	/usr/local/go/src/runtime/mgcscavenge.go:622 +0x65 fp=0xc000075fc8 sp=0xc000075fa0 pc=0x55b049d1dd25
runtime.gcenable.func2()
	/usr/local/go/src/runtime/mgc.go:179 +0x26 fp=0xc000075fe0 sp=0xc000075fc8 pc=0x55b049d14246
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000075fe8 sp=0xc000075fe0 pc=0x55b049d68e81
created by runtime.gcenable
	/usr/local/go/src/runtime/mgc.go:179 +0xaa

goroutine 5 [finalizer wait]:
runtime.gopark(0x0?, 0x55b04c1c7410?, 0x60?, 0xa7?, 0x2000000020?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000074628 sp=0xc000074608 pc=0x55b049d36856
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.runfinq()
	/usr/local/go/src/runtime/mfinal.go:180 +0x10f fp=0xc0000747e0 sp=0xc000074628 pc=0x55b049d133af
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000747e8 sp=0xc0000747e0 pc=0x55b049d68e81
created by runtime.createfing
	/usr/local/go/src/runtime/mfinal.go:157 +0x45

goroutine 6 [GC worker (idle)]:
runtime.gopark(0x14092147d0e96?, 0x3?, 0xe2?, 0xf0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000076750 sp=0xc000076730 pc=0x55b049d36856
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000767e0 sp=0xc000076750 pc=0x55b049d16411
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000767e8 sp=0xc0000767e0 pc=0x55b049d68e81
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 18 [GC worker (idle)]:
runtime.gopark(0x14092147d1b4d?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000070750 sp=0xc000070730 pc=0x55b049d36856
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000707e0 sp=0xc000070750 pc=0x55b049d16411
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000707e8 sp=0xc0000707e0 pc=0x55b049d68e81
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 19 [GC worker (idle)]:
runtime.gopark(0x14092147d0e21?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000070f50 sp=0xc000070f30 pc=0x55b049d36856
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000070fe0 sp=0xc000070f50 pc=0x55b049d16411
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000070fe8 sp=0xc000070fe0 pc=0x55b049d68e81
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 34 [GC worker (idle)]:
runtime.gopark(0x14092147d0689?, 0x3?, 0x19?, 0x6?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000508750 sp=0xc000508730 pc=0x55b049d36856
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0005087e0 sp=0xc000508750 pc=0x55b049d16411
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0005087e8 sp=0xc0005087e0 pc=0x55b049d68e81
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 20 [GC worker (idle)]:
runtime.gopark(0x14092147d0a71?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000071750 sp=0xc000071730 pc=0x55b049d36856
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000717e0 sp=0xc000071750 pc=0x55b049d16411
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000717e8 sp=0xc0000717e0 pc=0x55b049d68e81
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 21 [GC worker (idle)]:
runtime.gopark(0x14092147d0b16?, 0x2?, 0xd5?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000071f50 sp=0xc000071f30 pc=0x55b049d36856
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000071fe0 sp=0xc000071f50 pc=0x55b049d16411
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000071fe8 sp=0xc000071fe0 pc=0x55b049d68e81
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 56 [chan receive]:
runtime.gopark(0x3?, 0x10000c0000061a0?, 0x0?, 0x0?, 0xc00007e000?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00050beb8 sp=0xc00050be98 pc=0x55b049d36856
runtime.chanrecv(0xc0005c5680, 0xc00050bfc0, 0x1)
	/usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc00050bf48 sp=0xc00050beb8 pc=0x55b049cfe7bb
runtime.chanrecv2(0x55b049cfe1f9?, 0xc0009801f8?)
	/usr/local/go/src/runtime/chan.go:447 +0x18 fp=0xc00050bf70 sp=0xc00050bf48 pc=0x55b049cfe2f8
github.com/docker/docker/cmd/dockerd/trap.Trap.func1()
	/go/src/github.com/docker/docker/cmd/dockerd/trap/trap.go:29 +0x65 fp=0xc00050bfe0 sp=0xc00050bf70 pc=0x55b04b2272a5
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00050bfe8 sp=0xc00050bfe0 pc=0x55b049d68e81
created by github.com/docker/docker/cmd/dockerd/trap.Trap
	/go/src/github.com/docker/docker/cmd/dockerd/trap/trap.go:27 +0x138

goroutine 11 [select]:
runtime.gopark(0xc00050af88?, 0x3?, 0x30?, 0x6f?, 0xc00050af72?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00050adf8 sp=0xc00050add8 pc=0x55b049d36856
runtime.selectgo(0xc00050af88, 0xc00050af6c, 0xc000110f00?, 0x0, 0x160?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc00050af38 sp=0xc00050adf8 pc=0x55b049d46bbc
github.com/docker/docker/vendor/go.opencensus.io/stats/view.(*worker).start(0xc000110f00)
	/go/src/github.com/docker/docker/vendor/go.opencensus.io/stats/view/worker.go:276 +0xad fp=0xc00050afc8 sp=0xc00050af38 pc=0x55b04b4cd74d
github.com/docker/docker/vendor/go.opencensus.io/stats/view.init.0.func1()
	/go/src/github.com/docker/docker/vendor/go.opencensus.io/stats/view/worker.go:34 +0x26 fp=0xc00050afe0 sp=0xc00050afc8 pc=0x55b04b4cc9c6
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00050afe8 sp=0xc00050afe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/go.opencensus.io/stats/view.init.0
	/go/src/github.com/docker/docker/vendor/go.opencensus.io/stats/view/worker.go:34 +0x8d

goroutine 42 [select]:
runtime.gopark(0xc000167800?, 0x2?, 0x10?, 0x0?, 0xc000167674?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000a0b4b8 sp=0xc000a0b498 pc=0x55b049d36856
runtime.selectgo(0xc000a0b800, 0xc000167670, 0xc0005c5320?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000a0b5f8 sp=0xc000a0b4b8 pc=0x55b049d46bbc
github.com/docker/docker/libcontainerd/supervisor.(*remote).monitorDaemon(0xc000788fc0, {0x55b04c1f6c98, 0xc0005abb80})
	/go/src/github.com/docker/docker/libcontainerd/supervisor/remote_daemon.go:317 +0xc86 fp=0xc000a0bfb8 sp=0xc000a0b5f8 pc=0x55b04b7934e6
github.com/docker/docker/libcontainerd/supervisor.Start.func1()
	/go/src/github.com/docker/docker/libcontainerd/supervisor/remote_daemon.go:95 +0x2e fp=0xc000a0bfe0 sp=0xc000a0bfb8 pc=0x55b04b7913ce
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000a0bfe8 sp=0xc000a0bfe0 pc=0x55b049d68e81
created by github.com/docker/docker/libcontainerd/supervisor.Start
	/go/src/github.com/docker/docker/libcontainerd/supervisor/remote_daemon.go:95 +0x585

goroutine 84 [syscall, locked to thread]:
syscall.Syscall6(0x3?, 0x3?, 0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/syscall/syscall_linux.go:90 +0x36 fp=0xc00008bc40 sp=0xc00008bbb8 pc=0x55b049dc4af6
os.(*Process).blockUntilWaitable(0xc0005726f0)
	/usr/local/go/src/os/wait_waitid.go:32 +0x87 fp=0xc00008bd18 sp=0xc00008bc40 pc=0x55b049df3de7
os.(*Process).wait(0xc0005726f0)
	/usr/local/go/src/os/exec_unix.go:22 +0x28 fp=0xc00008bd78 sp=0xc00008bd18 pc=0x55b049debdc8
os.(*Process).Wait(...)
	/usr/local/go/src/os/exec.go:132
os/exec.(*Cmd).Wait(0xc000c2eb00)
	/usr/local/go/src/os/exec/exec.go:599 +0x4b fp=0xc00008bdf0 sp=0xc00008bd78 pc=0x55b04a0f60eb
github.com/docker/docker/libcontainerd/supervisor.(*remote).startContainerd.func1()
	/go/src/github.com/docker/docker/libcontainerd/supervisor/remote_daemon.go:195 +0xf7 fp=0xc00008bfe0 sp=0xc00008bdf0 pc=0x55b04b792637
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00008bfe8 sp=0xc00008bfe0 pc=0x55b049d68e81
created by github.com/docker/docker/libcontainerd/supervisor.(*remote).startContainerd
	/go/src/github.com/docker/docker/libcontainerd/supervisor/remote_daemon.go:177 +0x505

goroutine 43 [select]:
runtime.gopark(0xc000bc1f98?, 0x2?, 0x40?, 0xc8?, 0xc000bc1f7c?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000a13e00 sp=0xc000a13de0 pc=0x55b049d36856
runtime.selectgo(0xc000a13f98, 0xc000bc1f78, 0xc000b63e10?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000a13f40 sp=0xc000a13e00 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc.(*ccBalancerWrapper).watcher(0xc0005abc80)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:112 +0x73 fp=0xc000a13fc8 sp=0xc000a13f40 pc=0x55b04a4b9033
github.com/docker/docker/vendor/google.golang.org/grpc.newCCBalancerWrapper.func1()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:73 +0x26 fp=0xc000a13fe0 sp=0xc000a13fc8 pc=0x55b04a4b8f86
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000a13fe8 sp=0xc000a13fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc.newCCBalancerWrapper
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:73 +0x22a

goroutine 85 [select, locked to thread]:
runtime.gopark(0xc0000727a8?, 0x2?, 0x4?, 0x0?, 0xc0000727a4?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000072618 sp=0xc0000725f8 pc=0x55b049d36856
runtime.selectgo(0xc0000727a8, 0xc0000727a0, 0x0?, 0x0, 0xc0005a81b0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000072758 sp=0xc000072618 pc=0x55b049d46bbc
runtime.ensureSigM.func1()
	/usr/local/go/src/runtime/signal_unix.go:991 +0x1b4 fp=0xc0000727e0 sp=0xc000072758 pc=0x55b049d4b054
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000727e8 sp=0xc0000727e0 pc=0x55b049d68e81
created by runtime.ensureSigM
	/usr/local/go/src/runtime/signal_unix.go:974 +0xbd

goroutine 47 [IO wait]:
runtime.gopark(0x55b04c1d3a00?, 0xb?, 0x0?, 0x0?, 0x7?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000bc3a80 sp=0xc000bc3a60 pc=0x55b049d36856
runtime.netpollblock(0x55b049dc26e5?, 0x49ddf085?, 0xb0?)
	/usr/local/go/src/runtime/netpoll.go:526 +0xf7 fp=0xc000bc3ab8 sp=0xc000bc3a80 pc=0x55b049d2ef17
internal/poll.runtime_pollWait(0x7fe4aa6c6728, 0x72)
	/usr/local/go/src/runtime/netpoll.go:305 +0x89 fp=0xc000bc3ad8 sp=0xc000bc3ab8 pc=0x55b049d63089
internal/poll.(*pollDesc).wait(0xc000110480?, 0xc000252000?, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc000bc3b00 sp=0xc000bc3ad8 pc=0x55b049ddf5b2
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000110480, {0xc000252000, 0x8000, 0x8000})
	/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a fp=0xc000bc3b80 sp=0xc000bc3b00 pc=0x55b049de0a9a
net.(*netFD).Read(0xc000110480, {0xc000252000?, 0x55b04c0b7fa0?, 0x1?})
	/usr/local/go/src/net/fd_posix.go:55 +0x29 fp=0xc000bc3bc8 sp=0xc000bc3b80 pc=0x55b049e59c89
net.(*conn).Read(0xc0005a4478, {0xc000252000?, 0xc000807080?, 0x800010601?})
	/usr/local/go/src/net/net.go:183 +0x45 fp=0xc000bc3c10 sp=0xc000bc3bc8 pc=0x55b049e6f585
bufio.(*Reader).Read(0xc0000350e0, {0xc0008e64a0, 0x9, 0x18?})
	/usr/local/go/src/bufio/bufio.go:237 +0x1bb fp=0xc000bc3c48 sp=0xc000bc3c10 pc=0x55b049e8a9db
io.ReadAtLeast({0x55b04c1d3520, 0xc0000350e0}, {0xc0008e64a0, 0x9, 0x9}, 0x9)
	/usr/local/go/src/io/io.go:332 +0x9a fp=0xc000bc3c90 sp=0xc000bc3c48 pc=0x55b049db649a
io.ReadFull(...)
	/usr/local/go/src/io/io.go:351
github.com/docker/docker/vendor/golang.org/x/net/http2.readFrameHeader({0xc0008e64a0?, 0x9?, 0xb8d49f6?}, {0x55b04c1d3520?, 0xc0000350e0?})
	/go/src/github.com/docker/docker/vendor/golang.org/x/net/http2/frame.go:237 +0x6e fp=0xc000bc3ce0 sp=0xc000bc3c90 pc=0x55b04a435e2e
github.com/docker/docker/vendor/golang.org/x/net/http2.(*Framer).ReadFrame(0xc0008e6460)
	/go/src/github.com/docker/docker/vendor/golang.org/x/net/http2/frame.go:498 +0x95 fp=0xc000bc3d90 sp=0xc000bc3ce0 pc=0x55b04a436bd5
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*http2Client).reader(0xc0007741e0)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:1516 +0x4be fp=0xc000bc3fc8 sp=0xc000bc3d90 pc=0x55b04a47429e
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client.func7()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:369 +0x26 fp=0xc000bc3fe0 sp=0xc000bc3fc8 pc=0x55b04a469ee6
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000bc3fe8 sp=0xc000bc3fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:369 +0x19af

goroutine 48 [select]:
runtime.gopark(0xc000275f00?, 0x2?, 0x1e?, 0x0?, 0xc000275ed4?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000a07d60 sp=0xc000a07d40 pc=0x55b049d36856
runtime.selectgo(0xc000a07f00, 0xc000275ed0, 0x55b049e6f765?, 0x0, 0xc00074a000?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000a07ea0 sp=0xc000a07d60 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*controlBuffer).get(0xc0007c88c0, 0x1)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:408 +0x115 fp=0xc000a07f30 sp=0xc000a07ea0 pc=0x55b04a45f635
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*loopyWriter).run(0xc000035140)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:535 +0x85 fp=0xc000a07f88 sp=0xc000a07f30 pc=0x55b04a45fd45
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client.func3()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:419 +0x6a fp=0xc000a07fe0 sp=0xc000a07f88 pc=0x55b04a469dca
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000a07fe8 sp=0xc000a07fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:417 +0x1ffc

goroutine 86 [syscall]:
runtime.notetsleepg(0x0?, 0x0?)
	/usr/local/go/src/runtime/lock_futex.go:236 +0x34 fp=0xc0005057a0 sp=0xc000505768 pc=0x55b049d04154
os/signal.signal_recv()
	/usr/local/go/src/runtime/sigqueue.go:152 +0x2f fp=0xc0005057c0 sp=0xc0005057a0 pc=0x55b049d651cf
os/signal.loop()
	/usr/local/go/src/os/signal/signal_unix.go:23 +0x19 fp=0xc0005057e0 sp=0xc0005057c0 pc=0x55b049e25599
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0005057e8 sp=0xc0005057e0 pc=0x55b049d68e81
created by os/signal.Notify.func1.1
	/usr/local/go/src/os/signal/signal.go:151 +0x2a

goroutine 49 [chan receive]:
runtime.gopark(0xc000072ec8?, 0x55b04a4603cd?, 0x40?, 0x51?, 0xc000878d50?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000072e98 sp=0xc000072e78 pc=0x55b049d36856
runtime.chanrecv(0xc00098e3c0, 0xc000072fc0, 0x1)
	/usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc000072f28 sp=0xc000072e98 pc=0x55b049cfe7bb
runtime.chanrecv2(0x0?, 0x0?)
	/usr/local/go/src/runtime/chan.go:447 +0x18 fp=0xc000072f50 sp=0xc000072f28 pc=0x55b049cfe2f8
github.com/docker/docker/daemon.(*Daemon).setupDumpStackTrap.func1()
	/go/src/github.com/docker/docker/daemon/debugtrap_unix.go:19 +0x58 fp=0xc000072fe0 sp=0xc000072f50 pc=0x55b04b571a98
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000072fe8 sp=0xc000072fe0 pc=0x55b049d68e81
created by github.com/docker/docker/daemon.(*Daemon).setupDumpStackTrap
	/go/src/github.com/docker/docker/daemon/debugtrap_unix.go:18 +0xd5

goroutine 58 [IO wait]:
runtime.gopark(0x55b04d5984c0?, 0xc000179c60?, 0xa8?, 0x57?, 0xc000179c50?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000179be0 sp=0xc000179bc0 pc=0x55b049d36856
runtime.netpollblock(0xc000078800?, 0x996d00?, 0xc0?)
	/usr/local/go/src/runtime/netpoll.go:526 +0xf7 fp=0xc000179c18 sp=0xc000179be0 pc=0x55b049d2ef17
internal/poll.runtime_pollWait(0x7fe4aa6c6638, 0x72)
	/usr/local/go/src/runtime/netpoll.go:305 +0x89 fp=0xc000179c38 sp=0xc000179c18 pc=0x55b049d63089
internal/poll.(*pollDesc).wait(0xc000110700?, 0x0?, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc000179c60 sp=0xc000179c38 pc=0x55b049ddf5b2
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc000110700)
	/usr/local/go/src/internal/poll/fd_unix.go:614 +0x234 fp=0xc000179cf8 sp=0xc000179c60 pc=0x55b049de49b4
net.(*netFD).accept(0xc000110700)
	/usr/local/go/src/net/fd_unix.go:172 +0x35 fp=0xc000179db0 sp=0xc000179cf8 pc=0x55b049e5bdf5
net.(*UnixListener).accept(0x55b049e23e66?)
	/usr/local/go/src/net/unixsock_posix.go:166 +0x1c fp=0xc000179dd8 sp=0xc000179db0 pc=0x55b049e8065c
net.(*UnixListener).Accept(0xc0001a87b0)
	/usr/local/go/src/net/unixsock.go:260 +0x3d fp=0xc000179e08 sp=0xc000179dd8 pc=0x55b049e7ecfd
net/http.(*onceCloseListener).Accept(0x55b04c1f6cd0?)
	<autogenerated>:1 +0x2a fp=0xc000179e20 sp=0xc000179e08 pc=0x55b04a2d6c6a
net/http.(*Server).Serve(0xc000c322d0, {0x55b04c1f5110, 0xc0001a87b0})
	/usr/local/go/src/net/http/server.go:3070 +0x385 fp=0xc000179f50 sp=0xc000179e20 pc=0x55b04a2ad1c5
github.com/docker/docker/daemon.(*Daemon).listenMetricsSock.func1()
	/go/src/github.com/docker/docker/daemon/metrics_unix.go:39 +0xe5 fp=0xc000179fe0 sp=0xc000179f50 pc=0x55b04b5903e5
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000179fe8 sp=0xc000179fe0 pc=0x55b049d68e81
created by github.com/docker/docker/daemon.(*Daemon).listenMetricsSock
	/go/src/github.com/docker/docker/daemon/metrics_unix.go:33 +0x14c

goroutine 59 [select]:
runtime.gopark(0xc00022bf98?, 0x2?, 0x0?, 0xf6?, 0xc00022bf7c?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00066ce00 sp=0xc00066cde0 pc=0x55b049d36856
runtime.selectgo(0xc00066cf98, 0xc00022bf78, 0xc0007ef8a0?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc00066cf40 sp=0xc00066ce00 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc.(*ccBalancerWrapper).watcher(0xc00007c700)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:112 +0x73 fp=0xc00066cfc8 sp=0xc00066cf40 pc=0x55b04a4b9033
github.com/docker/docker/vendor/google.golang.org/grpc.newCCBalancerWrapper.func1()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:73 +0x26 fp=0xc00066cfe0 sp=0xc00066cfc8 pc=0x55b04a4b8f86
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00066cfe8 sp=0xc00066cfe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc.newCCBalancerWrapper
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:73 +0x22a

goroutine 101 [IO wait]:
runtime.gopark(0x55b04c1d3a00?, 0xb?, 0x0?, 0x0?, 0xa?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000088a80 sp=0xc000088a60 pc=0x55b049d36856
runtime.netpollblock(0x55b049dc26e5?, 0x49ddf085?, 0xb0?)
	/usr/local/go/src/runtime/netpoll.go:526 +0xf7 fp=0xc000088ab8 sp=0xc000088a80 pc=0x55b049d2ef17
internal/poll.runtime_pollWait(0x7fe4aa6c6458, 0x72)
	/usr/local/go/src/runtime/netpoll.go:305 +0x89 fp=0xc000088ad8 sp=0xc000088ab8 pc=0x55b049d63089
internal/poll.(*pollDesc).wait(0xc000110900?, 0xc0007b0000?, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc000088b00 sp=0xc000088ad8 pc=0x55b049ddf5b2
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000110900, {0xc0007b0000, 0x8000, 0x8000})
	/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a fp=0xc000088b80 sp=0xc000088b00 pc=0x55b049de0a9a
net.(*netFD).Read(0xc000110900, {0xc0007b0000?, 0x55b049d66c30?, 0x55b049d36907?})
	/usr/local/go/src/net/fd_posix.go:55 +0x29 fp=0xc000088bc8 sp=0xc000088b80 pc=0x55b049e59c89
net.(*conn).Read(0xc0005a4518, {0xc0007b0000?, 0x100c000be4210?, 0x8aa000601?})
	/usr/local/go/src/net/net.go:183 +0x45 fp=0xc000088c10 sp=0xc000088bc8 pc=0x55b049e6f585
bufio.(*Reader).Read(0xc000035b60, {0xc0008e6580, 0x9, 0x18?})
	/usr/local/go/src/bufio/bufio.go:237 +0x1bb fp=0xc000088c48 sp=0xc000088c10 pc=0x55b049e8a9db
io.ReadAtLeast({0x55b04c1d3520, 0xc000035b60}, {0xc0008e6580, 0x9, 0x9}, 0x9)
	/usr/local/go/src/io/io.go:332 +0x9a fp=0xc000088c90 sp=0xc000088c48 pc=0x55b049db649a
io.ReadFull(...)
	/usr/local/go/src/io/io.go:351
github.com/docker/docker/vendor/golang.org/x/net/http2.readFrameHeader({0xc0008e6580?, 0x9?, 0x18?}, {0x55b04c1d3520?, 0xc000035b60?})
	/go/src/github.com/docker/docker/vendor/golang.org/x/net/http2/frame.go:237 +0x6e fp=0xc000088ce0 sp=0xc000088c90 pc=0x55b04a435e2e
github.com/docker/docker/vendor/golang.org/x/net/http2.(*Framer).ReadFrame(0xc0008e6540)
	/go/src/github.com/docker/docker/vendor/golang.org/x/net/http2/frame.go:498 +0x95 fp=0xc000088d90 sp=0xc000088ce0 pc=0x55b04a436bd5
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*http2Client).reader(0xc000774b40)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:1516 +0x4be fp=0xc000088fc8 sp=0xc000088d90 pc=0x55b04a47429e
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client.func7()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:369 +0x26 fp=0xc000088fe0 sp=0xc000088fc8 pc=0x55b04a469ee6
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000088fe8 sp=0xc000088fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:369 +0x19af

goroutine 68 [IO wait]:
runtime.gopark(0x55b04c1d3a00?, 0xb?, 0x0?, 0x0?, 0x9?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00008da80 sp=0xc00008da60 pc=0x55b049d36856
runtime.netpollblock(0x55b049dc26e5?, 0x49ddf085?, 0xb0?)
	/usr/local/go/src/runtime/netpoll.go:526 +0xf7 fp=0xc00008dab8 sp=0xc00008da80 pc=0x55b049d2ef17
internal/poll.runtime_pollWait(0x7fe4aa6c6548, 0x72)
	/usr/local/go/src/runtime/netpoll.go:305 +0x89 fp=0xc00008dad8 sp=0xc00008dab8 pc=0x55b049d63089
internal/poll.(*pollDesc).wait(0xc0005bc000?, 0xc00075a000?, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc00008db00 sp=0xc00008dad8 pc=0x55b049ddf5b2
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc0005bc000, {0xc00075a000, 0x8000, 0x8000})
	/usr/local/go/src/internal/poll/fd_unix.go:167 +0x25a fp=0xc00008db80 sp=0xc00008db00 pc=0x55b049de0a9a
net.(*netFD).Read(0xc0005bc000, {0xc00075a000?, 0x55b04c0b7fa0?, 0xb049d2ef01?})
	/usr/local/go/src/net/fd_posix.go:55 +0x29 fp=0xc00008dbc8 sp=0xc00008db80 pc=0x55b049e59c89
net.(*conn).Read(0xc000566008, {0xc00075a000?, 0xc000cf3e90?, 0x800010601?})
	/usr/local/go/src/net/net.go:183 +0x45 fp=0xc00008dc10 sp=0xc00008dbc8 pc=0x55b049e6f585
bufio.(*Reader).Read(0xc0005601e0, {0xc0005be040, 0x9, 0x18?})
	/usr/local/go/src/bufio/bufio.go:237 +0x1bb fp=0xc00008dc48 sp=0xc00008dc10 pc=0x55b049e8a9db
io.ReadAtLeast({0x55b04c1d3520, 0xc0005601e0}, {0xc0005be040, 0x9, 0x9}, 0x9)
	/usr/local/go/src/io/io.go:332 +0x9a fp=0xc00008dc90 sp=0xc00008dc48 pc=0x55b049db649a
io.ReadFull(...)
	/usr/local/go/src/io/io.go:351
github.com/docker/docker/vendor/golang.org/x/net/http2.readFrameHeader({0xc0005be040?, 0x9?, 0x168e7e06?}, {0x55b04c1d3520?, 0xc0005601e0?})
	/go/src/github.com/docker/docker/vendor/golang.org/x/net/http2/frame.go:237 +0x6e fp=0xc00008dce0 sp=0xc00008dc90 pc=0x55b04a435e2e
github.com/docker/docker/vendor/golang.org/x/net/http2.(*Framer).ReadFrame(0xc0005be000)
	/go/src/github.com/docker/docker/vendor/golang.org/x/net/http2/frame.go:498 +0x95 fp=0xc00008dd90 sp=0xc00008dce0 pc=0x55b04a436bd5
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*http2Client).reader(0xc0005c2000)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:1516 +0x4be fp=0xc00008dfc8 sp=0xc00008dd90 pc=0x55b04a47429e
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client.func7()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:369 +0x26 fp=0xc00008dfe0 sp=0xc00008dfc8 pc=0x55b04a469ee6
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00008dfe8 sp=0xc00008dfe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:369 +0x19af

goroutine 69 [select]:
runtime.gopark(0xc000787f00?, 0x2?, 0x1e?, 0x0?, 0xc000787ed4?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000a1bd60 sp=0xc000a1bd40 pc=0x55b049d36856
runtime.selectgo(0xc000a1bf00, 0xc000787ed0, 0x55b049e6f765?, 0x0, 0xc0008fe000?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000a1bea0 sp=0xc000a1bd60 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*controlBuffer).get(0xc000666230, 0x1)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:408 +0x115 fp=0xc000a1bf30 sp=0xc000a1bea0 pc=0x55b04a45f635
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*loopyWriter).run(0xc0005602a0)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:535 +0x85 fp=0xc000a1bf88 sp=0xc000a1bf30 pc=0x55b04a45fd45
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client.func3()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:419 +0x6a fp=0xc000a1bfe0 sp=0xc000a1bf88 pc=0x55b04a469dca
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000a1bfe8 sp=0xc000a1bfe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:417 +0x1ffc

goroutine 61 [select]:
runtime.gopark(0xc00022df98?, 0x2?, 0x10?, 0xfd?, 0xc00022df7c?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00066de00 sp=0xc00066dde0 pc=0x55b049d36856
runtime.selectgo(0xc00066df98, 0xc00022df78, 0xc0007effc0?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc00066df40 sp=0xc00066de00 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc.(*ccBalancerWrapper).watcher(0xc00007c980)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:112 +0x73 fp=0xc00066dfc8 sp=0xc00066df40 pc=0x55b04a4b9033
github.com/docker/docker/vendor/google.golang.org/grpc.newCCBalancerWrapper.func1()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:73 +0x26 fp=0xc00066dfe0 sp=0xc00066dfc8 pc=0x55b04a4b8f86
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00066dfe8 sp=0xc00066dfe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc.newCCBalancerWrapper
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/balancer_conn_wrappers.go:73 +0x22a

goroutine 102 [select]:
runtime.gopark(0xc00098bf00?, 0x2?, 0x11?, 0x0?, 0xc00098bed4?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000a17d60 sp=0xc000a17d40 pc=0x55b049d36856
runtime.selectgo(0xc000a17f00, 0xc00098bed0, 0x55b049e6f765?, 0x0, 0xc0009bc000?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000a17ea0 sp=0xc000a17d60 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*controlBuffer).get(0xc0007c8f00, 0x1)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:408 +0x115 fp=0xc000a17f30 sp=0xc000a17ea0 pc=0x55b04a45f635
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*loopyWriter).run(0xc000035bc0)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/controlbuf.go:535 +0x85 fp=0xc000a17f88 sp=0xc000a17f30 pc=0x55b04a45fd45
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client.func3()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:419 +0x6a fp=0xc000a17fe0 sp=0xc000a17f88 pc=0x55b04a469dca
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000a17fe8 sp=0xc000a17fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.newHTTP2Client
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/http2_client.go:417 +0x1ffc

goroutine 89 [select]:
runtime.gopark(0xc000bcf520?, 0x2?, 0x40?, 0xf2?, 0xc000bcf3a4?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000bcf1b8 sp=0xc000bcf198 pc=0x55b049d36856
runtime.selectgo(0xc000bcf520, 0xc000bcf3a0, 0xc000bcf500?, 0x0, 0x1?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000bcf2f8 sp=0xc000bcf1b8 pc=0x55b049d46bbc
github.com/docker/docker/libcontainerd/remote.(*client).processEventStream(0xc000558fa0, {0x55b04c1f6c98, 0xc0005abb80}, {0x55b04b7b5165, 0xc})
	/go/src/github.com/docker/docker/libcontainerd/remote/client.go:603 +0x25e fp=0xc000bcffa8 sp=0xc000bcf2f8 pc=0x55b04b2cec9e
github.com/docker/docker/libcontainerd/remote.NewClient.func1()
	/go/src/github.com/docker/docker/libcontainerd/remote/client.go:78 +0x36 fp=0xc000bcffe0 sp=0xc000bcffa8 pc=0x55b04b2c8a96
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000bcffe8 sp=0xc000bcffe0 pc=0x55b049d68e81
created by github.com/docker/docker/libcontainerd/remote.NewClient
	/go/src/github.com/docker/docker/libcontainerd/remote/client.go:78 +0x2f5

goroutine 103 [select]:
runtime.gopark(0xc000735fb0?, 0x2?, 0xc0?, 0x5d?, 0xc000735f94?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000735e18 sp=0xc000735df8 pc=0x55b049d36856
runtime.selectgo(0xc000735fb0, 0xc000735f90, 0x3b995fe4?, 0x0, 0x31?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000735f58 sp=0xc000735e18 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc.newClientStreamWithParams.func4()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:358 +0x92 fp=0xc000735fe0 sp=0xc000735f58 pc=0x55b04a4db512
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000735fe8 sp=0xc000735fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc.newClientStreamWithParams
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:357 +0xe6f

goroutine 104 [select]:
runtime.gopark(0xc000089bf8?, 0x2?, 0x0?, 0x0?, 0xc000089bf4?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000089a80 sp=0xc000089a60 pc=0x55b049d36856
runtime.selectgo(0xc000089bf8, 0xc000089bf0, 0xc0007b0000?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000089bc0 sp=0xc000089a80 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*Stream).waitOnHeader(0xc00060e5a0)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/transport.go:324 +0x7c fp=0xc000089c28 sp=0xc000089bc0 pc=0x55b04a48405c
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*Stream).RecvCompress(...)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/transport.go:339
github.com/docker/docker/vendor/google.golang.org/grpc.(*csAttempt).recvMsg(0xc0000ef980, {0x55b04c101740?, 0xc0007ec1e0}, 0x4?)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:1011 +0xbe fp=0xc000089d58 sp=0xc000089c28 pc=0x55b04a4df35e
github.com/docker/docker/vendor/google.golang.org/grpc.(*clientStream).RecvMsg.func1(0x55b04a473e74?)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:865 +0x25 fp=0xc000089d88 sp=0xc000089d58 pc=0x55b04a4de725
github.com/docker/docker/vendor/google.golang.org/grpc.(*clientStream).withRetry(0xc00060e360, 0xc000089e98, 0xc000089e68)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:724 +0x144 fp=0xc000089df8 sp=0xc000089d88 pc=0x55b04a4dd0e4
github.com/docker/docker/vendor/google.golang.org/grpc.(*clientStream).RecvMsg(0xc00060e360, {0x55b04c101740?, 0xc0007ec1e0?})
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:864 +0x12e fp=0xc000089ec8 sp=0xc000089df8 pc=0x55b04a4de38e
github.com/docker/docker/vendor/github.com/containerd/containerd/api/services/events/v1.(*eventsSubscribeClient).Recv(0xc00018cd10)
	/go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/api/services/events/v1/events.pb.go:354 +0x4c fp=0xc000089ef8 sp=0xc000089ec8 pc=0x55b04a9ae4ec
github.com/docker/docker/vendor/github.com/containerd/containerd.(*eventRemote).Subscribe.func1()
	/go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/events.go:99 +0xc2 fp=0xc000089fe0 sp=0xc000089ef8 pc=0x55b04aab4da2
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000089fe8 sp=0xc000089fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/github.com/containerd/containerd.(*eventRemote).Subscribe
	/go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/events.go:95 +0x1ca

goroutine 90 [sync.Cond.Wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00008aa60 sp=0xc00008aa40 pc=0x55b049d36856
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
sync.runtime_notifyListWait(0xc000555550, 0x0)
	/usr/local/go/src/runtime/sema.go:517 +0x14c fp=0xc00008aaa8 sp=0xc00008aa60 pc=0x55b049d64d6c
sync.(*Cond).Wait(0x0?)
	/usr/local/go/src/sync/cond.go:70 +0x8c fp=0xc00008aae0 sp=0xc00008aaa8 pc=0x55b049d8094c
github.com/docker/docker/daemon/stats.(*Collector).Run(0xc000555500)
	/go/src/github.com/docker/docker/daemon/stats/collector.go:96 +0x18e fp=0xc00008afc8 sp=0xc00008aae0 pc=0x55b04b29f98e
github.com/docker/docker/daemon.(*Daemon).newStatsCollector.func1()
	/go/src/github.com/docker/docker/daemon/stats_collector.go:24 +0x26 fp=0xc00008afe0 sp=0xc00008afc8 pc=0x55b04b5b5a46
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00008afe8 sp=0xc00008afe0 pc=0x55b049d68e81
created by github.com/docker/docker/daemon.(*Daemon).newStatsCollector
	/go/src/github.com/docker/docker/daemon/stats_collector.go:24 +0x9b

goroutine 91 [chan receive]:
runtime.gopark(0xe4d24aef18?, 0xc000583520?, 0x78?, 0x5e?, 0x55b049d53ea5?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000505e20 sp=0xc000505e00 pc=0x55b049d36856
runtime.chanrecv(0xc00098ec00, 0xc000505f40, 0x1)
	/usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc000505eb0 sp=0xc000505e20 pc=0x55b049cfe7bb
runtime.chanrecv2(0x45d964b800?, 0x0?)
	/usr/local/go/src/runtime/chan.go:447 +0x18 fp=0xc000505ed8 sp=0xc000505eb0 pc=0x55b049cfe2f8
github.com/docker/docker/daemon.(*Daemon).execCommandGC(0xc0009f0f00)
	/go/src/github.com/docker/docker/daemon/exec.go:325 +0x65 fp=0xc000505fc8 sp=0xc000505ed8 pc=0x55b04b579f45
github.com/docker/docker/daemon.NewDaemon.func13()
	/go/src/github.com/docker/docker/daemon/daemon.go:1090 +0x26 fp=0xc000505fe0 sp=0xc000505fc8 pc=0x55b04b560846
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000505fe8 sp=0xc000505fe0 pc=0x55b049d68e81
created by github.com/docker/docker/daemon.NewDaemon
	/go/src/github.com/docker/docker/daemon/daemon.go:1090 +0x2bea

goroutine 92 [select]:
runtime.gopark(0xc000bcb520?, 0x2?, 0x40?, 0xb2?, 0xc000bcb3a4?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000bcb1b8 sp=0xc000bcb198 pc=0x55b049d36856
runtime.selectgo(0xc000bcb520, 0xc000bcb3a0, 0xc000bcb500?, 0x0, 0x1?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000bcb2f8 sp=0xc000bcb1b8 pc=0x55b049d46bbc
github.com/docker/docker/libcontainerd/remote.(*client).processEventStream(0xc000559130, {0x55b04c1f6c98, 0xc0005abb80}, {0x55b04b7a38d7, 0x4})
	/go/src/github.com/docker/docker/libcontainerd/remote/client.go:603 +0x25e fp=0xc000bcbfa8 sp=0xc000bcb2f8 pc=0x55b04b2cec9e
github.com/docker/docker/libcontainerd/remote.NewClient.func1()
	/go/src/github.com/docker/docker/libcontainerd/remote/client.go:78 +0x36 fp=0xc000bcbfe0 sp=0xc000bcbfa8 pc=0x55b04b2c8a96
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000bcbfe8 sp=0xc000bcbfe0 pc=0x55b049d68e81
created by github.com/docker/docker/libcontainerd/remote.NewClient
	/go/src/github.com/docker/docker/libcontainerd/remote/client.go:78 +0x2f5

goroutine 93 [select]:
runtime.gopark(0xc000506f98?, 0x2?, 0x0?, 0x0?, 0xc000506f84?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000506e10 sp=0xc000506df0 pc=0x55b049d36856
runtime.selectgo(0xc000506f98, 0xc000506f80, 0x0?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000506f50 sp=0xc000506e10 pc=0x55b049d46bbc
github.com/docker/docker/libnetwork.(*controller).watchLoop(0xc000c323c0)
	/go/src/github.com/docker/docker/libnetwork/store.go:429 +0x86 fp=0xc000506fc8 sp=0xc000506f50 pc=0x55b04ae7c746
github.com/docker/docker/libnetwork.(*controller).startWatch.func1()
	/go/src/github.com/docker/docker/libnetwork/store.go:446 +0x26 fp=0xc000506fe0 sp=0xc000506fc8 pc=0x55b04ae7c906
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000506fe8 sp=0xc000506fe0 pc=0x55b049d68e81
created by github.com/docker/docker/libnetwork.(*controller).startWatch
	/go/src/github.com/docker/docker/libnetwork/store.go:446 +0xfb

goroutine 63 [select]:
runtime.gopark(0xc0005067b0?, 0x2?, 0x0?, 0x0?, 0xc000506794?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000506618 sp=0xc0005065f8 pc=0x55b049d36856
runtime.selectgo(0xc0005067b0, 0xc000506790, 0x0?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000506758 sp=0xc000506618 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc.newClientStreamWithParams.func4()
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:358 +0x92 fp=0xc0005067e0 sp=0xc000506758 pc=0x55b04a4db512
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0005067e8 sp=0xc0005067e0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/google.golang.org/grpc.newClientStreamWithParams
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:357 +0xe6f

goroutine 64 [select]:
runtime.gopark(0xc000175bf8?, 0x2?, 0x0?, 0x0?, 0xc000175bf4?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000175a80 sp=0xc000175a60 pc=0x55b049d36856
runtime.selectgo(0xc000175bf8, 0xc000175bf0, 0x33c00000007?, 0x0, 0xc00071ac40?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000175bc0 sp=0xc000175a80 pc=0x55b049d46bbc
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*Stream).waitOnHeader(0xc00057bd40)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/transport.go:324 +0x7c fp=0xc000175c28 sp=0xc000175bc0 pc=0x55b04a48405c
github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport.(*Stream).RecvCompress(...)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/internal/transport/transport.go:339
github.com/docker/docker/vendor/google.golang.org/grpc.(*csAttempt).recvMsg(0xc0008a8480, {0x55b04c101740?, 0xc00098ef60}, 0x4?)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:1011 +0xbe fp=0xc000175d58 sp=0xc000175c28 pc=0x55b04a4df35e
github.com/docker/docker/vendor/google.golang.org/grpc.(*clientStream).RecvMsg.func1(0x33100000007?)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:865 +0x25 fp=0xc000175d88 sp=0xc000175d58 pc=0x55b04a4de725
github.com/docker/docker/vendor/google.golang.org/grpc.(*clientStream).withRetry(0xc00057bb00, 0xc000175e98, 0xc000175e68)
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:724 +0x144 fp=0xc000175df8 sp=0xc000175d88 pc=0x55b04a4dd0e4
github.com/docker/docker/vendor/google.golang.org/grpc.(*clientStream).RecvMsg(0xc00057bb00, {0x55b04c101740?, 0xc00098ef60?})
	/go/src/github.com/docker/docker/vendor/google.golang.org/grpc/stream.go:864 +0x12e fp=0xc000175ec8 sp=0xc000175df8 pc=0x55b04a4de38e
github.com/docker/docker/vendor/github.com/containerd/containerd/api/services/events/v1.(*eventsSubscribeClient).Recv(0xc0008040c0)
	/go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/api/services/events/v1/events.pb.go:354 +0x4c fp=0xc000175ef8 sp=0xc000175ec8 pc=0x55b04a9ae4ec
github.com/docker/docker/vendor/github.com/containerd/containerd.(*eventRemote).Subscribe.func1()
	/go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/events.go:99 +0xc2 fp=0xc000175fe0 sp=0xc000175ef8 pc=0x55b04aab4da2
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000175fe8 sp=0xc000175fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/github.com/containerd/containerd.(*eventRemote).Subscribe
	/go/src/github.com/docker/docker/vendor/github.com/containerd/containerd/events.go:95 +0x1ca

goroutine 174 [IO wait]:
runtime.gopark(0x55b049d2ef17?, 0x7fe4d24ae108?, 0x0?, 0x0?, 0xc000508d68?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000508cf8 sp=0xc000508cd8 pc=0x55b049d36856
runtime.netpollblock(0xc000508d78?, 0x49d3e4d1?, 0xb0?)
	/usr/local/go/src/runtime/netpoll.go:526 +0xf7 fp=0xc000508d30 sp=0xc000508cf8 pc=0x55b049d2ef17
internal/poll.runtime_pollWait(0x7fe4aa6c6368, 0x72)
	/usr/local/go/src/runtime/netpoll.go:305 +0x89 fp=0xc000508d50 sp=0xc000508d30 pc=0x55b049d63089
internal/poll.(*pollDesc).wait(0xc0005a1380?, 0x55b049d63c9d?, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc000508d78 sp=0xc000508d50 pc=0x55b049ddf5b2
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc0005a1380)
	/usr/local/go/src/internal/poll/fd_unix.go:614 +0x234 fp=0xc000508e10 sp=0xc000508d78 pc=0x55b049de49b4
net.(*netFD).accept(0xc0005a1380)
	/usr/local/go/src/net/fd_unix.go:172 +0x35 fp=0xc000508ec8 sp=0xc000508e10 pc=0x55b049e5bdf5
net.(*UnixListener).accept(0x0?)
	/usr/local/go/src/net/unixsock_posix.go:166 +0x1c fp=0xc000508ef0 sp=0xc000508ec8 pc=0x55b049e8065c
net.(*UnixListener).Accept(0xc000b47560)
	/usr/local/go/src/net/unixsock.go:260 +0x3d fp=0xc000508f20 sp=0xc000508ef0 pc=0x55b049e7ecfd
github.com/docker/docker/libnetwork.(*controller).acceptClientConnections(0xc000c323c0, {0xc000b4a2a0, 0x2c}, {0x55b04c1f5110, 0xc000b47560})
	/go/src/github.com/docker/docker/libnetwork/sandbox_externalkey_unix.go:144 +0x5b fp=0xc000508fa8 sp=0xc000508f20 pc=0x55b04ae6715b
github.com/docker/docker/libnetwork.(*controller).startExternalKeyListener.func1()
	/go/src/github.com/docker/docker/libnetwork/sandbox_externalkey_unix.go:138 +0x36 fp=0xc000508fe0 sp=0xc000508fa8 pc=0x55b04ae670d6
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000508fe8 sp=0xc000508fe0 pc=0x55b049d68e81
created by github.com/docker/docker/libnetwork.(*controller).startExternalKeyListener
	/go/src/github.com/docker/docker/libnetwork/sandbox_externalkey_unix.go:138 +0x32a

goroutine 173 [select]:
runtime.gopark(0xc000507f80?, 0x2?, 0x9a?, 0x0?, 0xc000507f2c?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00008ed18 sp=0xc00008ecf8 pc=0x55b049d36856
runtime.selectgo(0xc00008ef80, 0xc000507f28, 0x0?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc00008ee58 sp=0xc00008ed18 pc=0x55b049d46bbc
github.com/docker/docker/libnetwork/drivers/overlay.(*driver).peerOpRoutine(0x0?, {0x55b04c1f6c98, 0xc00007d480}, 0xc0001952c0)
	/go/src/github.com/docker/docker/libnetwork/drivers/overlay/peerdb.go:279 +0xe8 fp=0xc00008efb0 sp=0xc00008ee58 pc=0x55b04adf27c8
github.com/docker/docker/libnetwork/drivers/overlay.Init.func1()
	/go/src/github.com/docker/docker/libnetwork/drivers/overlay/overlay.go:80 +0x32 fp=0xc00008efe0 sp=0xc00008efb0 pc=0x55b04adec6f2
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00008efe8 sp=0xc00008efe0 pc=0x55b049d68e81
created by github.com/docker/docker/libnetwork/drivers/overlay.Init
	/go/src/github.com/docker/docker/libnetwork/drivers/overlay/overlay.go:80 +0x225

goroutine 122 [chan receive]:
runtime.gopark(0x7?, 0xc000bc5ea8?, 0x7b?, 0x56?, 0xc000dd1bf0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000bc5e28 sp=0xc000bc5e08 pc=0x55b049d36856
runtime.chanrecv(0xc0008cf680, 0xc000bc5f20, 0x1)
	/usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc000bc5eb8 sp=0xc000bc5e28 pc=0x55b049cfe7bb
runtime.chanrecv1(0xc0007c81e0?, 0x1?)
	/usr/local/go/src/runtime/chan.go:442 +0x18 fp=0xc000bc5ee0 sp=0xc000bc5eb8 pc=0x55b049cfe2b8
github.com/docker/docker/api/server.(*Server).serveAPI(0xc0007c81e0)
	/go/src/github.com/docker/docker/api/server/server.go:97 +0x189 fp=0xc000bc5f40 sp=0xc000bc5ee0 pc=0x55b04a802ec9
github.com/docker/docker/api/server.(*Server).Wait(0x55b04a0f5fca?, 0x0?)
	/go/src/github.com/docker/docker/api/server/server.go:202 +0x25 fp=0xc000bc5fc0 sp=0xc000bc5f40 pc=0x55b04a803dc5
main.(*DaemonCli).start.func6()
	/go/src/github.com/docker/docker/cmd/dockerd/daemon.go:246 +0x2a fp=0xc000bc5fe0 sp=0xc000bc5fc0 pc=0x55b04b79796a
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000bc5fe8 sp=0xc000bc5fe0 pc=0x55b049d68e81
created by main.(*DaemonCli).start
	/go/src/github.com/docker/docker/cmd/dockerd/daemon.go:246 +0x1412

goroutine 121 [chan receive]:
runtime.gopark(0xc000c04fa8?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000c04ee8 sp=0xc000c04ec8 pc=0x55b049d36856
runtime.chanrecv(0xc000d4f1a0, 0xc000c04fc0, 0x1)
	/usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc000c04f78 sp=0xc000c04ee8 pc=0x55b049cfe7bb
runtime.chanrecv2(0x55b049d3d845?, 0x0?)
	/usr/local/go/src/runtime/chan.go:447 +0x18 fp=0xc000c04fa0 sp=0xc000c04f78 pc=0x55b049cfe2f8
main.(*DaemonCli).setupConfigReloadTrap.func1()
	/go/src/github.com/docker/docker/cmd/dockerd/daemon_unix.go:75 +0x4d fp=0xc000c04fe0 sp=0xc000c04fa0 pc=0x55b04b79cd8d
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000c04fe8 sp=0xc000c04fe0 pc=0x55b049d68e81
created by main.(*DaemonCli).setupConfigReloadTrap
	/go/src/github.com/docker/docker/cmd/dockerd/daemon_unix.go:74 +0xb9

goroutine 120 [chan receive]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000c05ef8 sp=0xc000c05ed8 pc=0x55b049d36856
runtime.chanrecv(0xc000c59260, 0x0, 0x1)
	/usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc000c05f88 sp=0xc000c05ef8 pc=0x55b049cfe7bb
runtime.chanrecv1(0x0?, 0xc000c05fd0?)
	/usr/local/go/src/runtime/chan.go:442 +0x18 fp=0xc000c05fb0 sp=0xc000c05f88 pc=0x55b049cfe2b8
github.com/docker/docker/vendor/github.com/moby/buildkit/solver.(*scheduler).loop.func2()
	/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/solver/scheduler.go:76 +0x28 fp=0xc000c05fe0 sp=0xc000c05fb0 pc=0x55b04b026248
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000c05fe8 sp=0xc000c05fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/github.com/moby/buildkit/solver.(*scheduler).loop
	/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/solver/scheduler.go:75 +0x96

goroutine 161 [sleep]:
runtime.gopark(0x140924faac563?, 0xc000d13170?, 0x50?, 0x2f?, 0xc000172f80?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000172f50 sp=0xc000172f30 pc=0x55b049d36856
time.Sleep(0xdf8475800)
	/usr/local/go/src/runtime/time.go:195 +0x137 fp=0xc000172f90 sp=0xc000172f50 pc=0x55b049d65a17
github.com/docker/docker/vendor/github.com/moby/buildkit/util/throttle.throttle.func1.1()
	/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/throttle/throttle.go:52 +0x186 fp=0xc000172fe0 sp=0xc000172f90 pc=0x55b04b0f8146
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000172fe8 sp=0xc000172fe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/github.com/moby/buildkit/util/throttle.throttle.func1
	/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/throttle/throttle.go:31 +0x171

goroutine 159 [IO wait]:
runtime.gopark(0x20?, 0xc00022fc58?, 0x7b?, 0x56?, 0xc00022fc48?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc00022fbd8 sp=0xc00022fbb8 pc=0x55b049d36856
runtime.netpollblock(0xc000100000?, 0x203000?, 0x0?)
	/usr/local/go/src/runtime/netpoll.go:526 +0xf7 fp=0xc00022fc10 sp=0xc00022fbd8 pc=0x55b049d2ef17
internal/poll.runtime_pollWait(0x7fe4aa6c6818, 0x72)
	/usr/local/go/src/runtime/netpoll.go:305 +0x89 fp=0xc00022fc30 sp=0xc00022fc10 pc=0x55b049d63089
internal/poll.(*pollDesc).wait(0xc000110180?, 0x0?, 0x0)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:84 +0x32 fp=0xc00022fc58 sp=0xc00022fc30 pc=0x55b049ddf5b2
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/go/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc000110180)
	/usr/local/go/src/internal/poll/fd_unix.go:614 +0x234 fp=0xc00022fcf0 sp=0xc00022fc58 pc=0x55b049de49b4
net.(*netFD).accept(0xc000110180)
	/usr/local/go/src/net/fd_unix.go:172 +0x35 fp=0xc00022fda8 sp=0xc00022fcf0 pc=0x55b049e5bdf5
net.(*UnixListener).accept(0x55b049e23ee6?)
	/usr/local/go/src/net/unixsock_posix.go:166 +0x1c fp=0xc00022fdd0 sp=0xc00022fda8 pc=0x55b049e8065c
net.(*UnixListener).Accept(0xc00088ce70)
	/usr/local/go/src/net/unixsock.go:260 +0x3d fp=0xc00022fe00 sp=0xc00022fdd0 pc=0x55b049e7ecfd
net/http.(*onceCloseListener).Accept(0x55b04c1f6cd0?)
	<autogenerated>:1 +0x2a fp=0xc00022fe18 sp=0xc00022fe00 pc=0x55b04a2d6c6a
net/http.(*Server).Serve(0xc000036000, {0x55b04c1f5110, 0xc00088ce70})
	/usr/local/go/src/net/http/server.go:3070 +0x385 fp=0xc00022ff48 sp=0xc00022fe18 pc=0x55b04a2ad1c5
github.com/docker/docker/api/server.(*HTTPServer).Serve(...)
	/go/src/github.com/docker/docker/api/server/server.go:115
github.com/docker/docker/api/server.(*Server).serveAPI.func1(0xc000137920)
	/go/src/github.com/docker/docker/api/server/server.go:89 +0x96 fp=0xc00022ffc8 sp=0xc00022ff48 pc=0x55b04a803016
github.com/docker/docker/api/server.(*Server).serveAPI.func2()
	/go/src/github.com/docker/docker/api/server/server.go:93 +0x2a fp=0xc00022ffe0 sp=0xc00022ffc8 pc=0x55b04a802f4a
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00022ffe8 sp=0xc00022ffe0 pc=0x55b049d68e81
created by github.com/docker/docker/api/server.(*Server).serveAPI
	/go/src/github.com/docker/docker/api/server/server.go:86 +0x52

goroutine 214 [sync.Cond.Wait]:
runtime.gopark(0x55b049d0563f?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000d1aec0 sp=0xc000d1aea0 pc=0x55b049d36856
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
sync.runtime_notifyListWait(0xc000d0ec50, 0x0)
	/usr/local/go/src/runtime/sema.go:517 +0x14c fp=0xc000d1af08 sp=0xc000d1aec0 pc=0x55b049d64d6c
sync.(*Cond).Wait(0xc000c31da0?)
	/usr/local/go/src/sync/cond.go:70 +0x8c fp=0xc000d1af40 sp=0xc000d1af08 pc=0x55b049d8094c
github.com/docker/docker/vendor/github.com/moby/buildkit/util/cond.(*StatefulCond).Wait(0xc000dd0210)
	/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/cond/cond.go:28 +0x6c fp=0xc000d1af68 sp=0xc000d1af40 pc=0x55b04b00428c
github.com/docker/docker/vendor/github.com/moby/buildkit/solver.(*scheduler).loop(0xc0008c6ee0)
	/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/solver/scheduler.go:101 +0x1f5 fp=0xc000d1afc8 sp=0xc000d1af68 pc=0x55b04b0261b5
github.com/docker/docker/vendor/github.com/moby/buildkit/solver.newScheduler.func1()
	/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/solver/scheduler.go:35 +0x26 fp=0xc000d1afe0 sp=0xc000d1afc8 pc=0x55b04b025ec6
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000d1afe8 sp=0xc000d1afe0 pc=0x55b049d68e81
created by github.com/docker/docker/vendor/github.com/moby/buildkit/solver.newScheduler
	/go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/solver/scheduler.go:35 +0x218

goroutine 215 [select]:
runtime.gopark(0xc000d1b780?, 0x2?, 0x0?, 0x0?, 0xc000d1b75c?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000d1b5e8 sp=0xc000d1b5c8 pc=0x55b049d36856
runtime.selectgo(0xc000d1b780, 0xc000d1b758, 0x0?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc000d1b728 sp=0xc000d1b5e8 pc=0x55b049d46bbc
github.com/docker/docker/daemon.(*Daemon).ProcessClusterNotifications(0x0?, {0x55b04c1f6c98, 0xc0005abb80}, 0xc000d03b00)
	/go/src/github.com/docker/docker/daemon/events.go:125 +0xad fp=0xc000d1b7b0 sp=0xc000d1b728 pc=0x55b04b57582d
main.(*DaemonCli).start.func5()
	/go/src/github.com/docker/docker/cmd/dockerd/daemon.go:238 +0x32 fp=0xc000d1b7e0 sp=0xc000d1b7b0 pc=0x55b04b7979d2
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000d1b7e8 sp=0xc000d1b7e0 pc=0x55b049d68e81
created by main.(*DaemonCli).start
	/go/src/github.com/docker/docker/cmd/dockerd/daemon.go:238 +0x137b

rax    0xca
rbx    0x0
rcx    0x55b049d6ada3
rdx    0x0
rdi    0x55b04d565168
rsi    0x80
rbp    0x7ffd274e41f0
rsp    0x7ffd274e41a8
r8     0x0
r9     0x0
r10    0x0
r11    0x286
r12    0x55b049d3cf20
r13    0x18
r14    0x55b04d5648e0
r15    0x7fe4ab17d9c7
rip    0x55b049d6ada1
rflags 0x286
cs     0x33
fs     0x0
gs     0x0

- Description for the changelog

  • dockerd exits with status 2 when killed with SIGQUIT

- A picture of a cute animal (not mandatory but encouraged)

dockerd handles SIGQUIT by dumping all goroutine stacks to standard
error and exiting. In contrast, the Go runtime's default SIGQUIT
behaviour... dumps all goroutine stacks to standard error and exits.
The default SIGQUIT behaviour is implemented directly in the runtime's
signal handler, and so is both more robust to bugs in the Go runtime and
does not perturb the state of the process to anywhere near same degree
as dumping goroutine stacks from a user goroutine. The only notable
difference from a user's perspective is that the process exits with
status 2 instead of 128+SIGQUIT.

Signed-off-by: Cory Snider <[email protected]>
(cherry picked from commit 0867d31)
Signed-off-by: Sebastiaan van Stijn <[email protected]>
@thaJeztah thaJeztah added status/2-code-review area/daemon Core Engine kind/refactor PR's that refactor, or clean-up code labels Jan 17, 2023
@thaJeztah thaJeztah added this to the 23.0.0 milestone Jan 17, 2023
@thaJeztah
Copy link
Copy Markdown
Member Author

@neersighted @corhere PTAL - did you want this for 23.0 only, or also back ported for 20.10?

@neersighted
Copy link
Copy Markdown
Member

I think @corhere might want it for 20.10 given the deadlock he's looking into affects that version, though as noted we can still fall back on SIGABRT so this is not the end of the world.

Copy link
Copy Markdown
Contributor

@corhere corhere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm in no rush to backport this change to 20.10 seeing as I've found the likely root cause of those hangs and we know about the SIGABRT workaround for any future ones on 20.10.

@neersighted neersighted merged commit 10b536d into moby:23.0 Jan 17, 2023
@thaJeztah thaJeztah deleted the 23.0_backport_default_sigquit_handler branch January 17, 2023 18:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/daemon Core Engine impact/changelog kind/refactor PR's that refactor, or clean-up code status/2-code-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants