moby--moby/daemon/graphdriver
Cory Snider 1f22b15030 Lock OS threads when exec'ing with Pdeathsig
On Linux, when (os/exec.Cmd).SysProcAttr.Pdeathsig is set, the signal
will be sent to the process when the OS thread on which cmd.Start() was
executed dies. The runtime terminates an OS thread when a goroutine
exits after being wired to the thread with runtime.LockOSThread(). If
other goroutines are allowed to be scheduled onto a thread which called
cmd.Start(), an unrelated goroutine could cause the thread to be
terminated and prematurely signal the command. See
https://github.com/golang/go/issues/27505 for more information.

Prevent started subprocesses with Pdeathsig from getting signaled
prematurely by wiring the starting goroutine to the OS thread until the
subprocess has exited. No other goroutines can be scheduled onto a
locked thread so it will remain alive until unlocked or the daemon
process exits.

Signed-off-by: Cory Snider <csnider@mirantis.com>
2022-10-05 12:18:03 -04:00
..
aufs daemon/graphdriver: fix empty-lines (revive) 2022-09-28 01:58:51 +02:00
btrfs daemon/graphdriver: fix empty-lines (revive) 2022-09-28 01:58:51 +02:00
copy Fix file capabilities droping in Dockerfile 2022-07-27 17:21:02 +02:00
devmapper daemon/graphdriver: fix empty-lines (revive) 2022-09-28 01:58:51 +02:00
fuse-overlayfs pkg/containerfs: drop ContainerFS type alias 2022-09-23 16:56:53 -04:00
graphtest daemon/graphdriver: fix empty-lines (revive) 2022-09-28 01:58:51 +02:00
overlay daemon/graphdriver: fix empty-lines (revive) 2022-09-28 01:58:51 +02:00
overlay2 Lock OS threads when exec'ing with Pdeathsig 2022-10-05 12:18:03 -04:00
overlayutils overlay2: account for UserNS/userxattr in metacopy test 2022-05-17 06:58:50 -06:00
register Update to Go 1.17.0, and gofmt with Go 1.17 2021-08-24 23:33:27 +02:00
vfs Merge pull request #44089 from thaJeztah/update_golangci_lint 2022-09-27 18:24:15 +02:00
windows pkg/containerfs: drop ContainerFS type alias 2022-09-23 16:56:53 -04:00
zfs daemon/graphdriver: fix empty-lines (revive) 2022-09-28 01:58:51 +02:00
counter.go graphdriver: Fix RefCounter memory leak 2018-02-09 10:26:06 +08:00
driver.go pkg/containerfs: drop ContainerFS type alias 2022-09-23 16:56:53 -04:00
driver_freebsd.go Add canonical import comment 2018-02-05 16:51:57 -05:00
driver_linux.go storage-driver: promote overlay2, make Btrfs and ZFS opt-in 2021-07-21 14:53:56 +02:00
driver_test.go fix unclosed file-handles in tests 2022-05-31 21:53:38 +02:00
driver_unsupported.go Update to Go 1.17.0, and gofmt with Go 1.17 2021-08-24 23:33:27 +02:00
driver_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
errors.go Add canonical import comment 2018-02-05 16:51:57 -05:00
fsdiff.go pkg/containerfs: alias ContainerFS to string 2022-09-23 16:56:52 -04:00
plugin.go Finish refactor of UID/GID usage to a new struct 2022-03-14 16:28:57 -04:00
proxy.go pkg/containerfs: drop ContainerFS type alias 2022-09-23 16:56:53 -04:00
proxy_test.go Finish refactor of UID/GID usage to a new struct 2022-03-14 16:28:57 -04:00