mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
services: docker: Fix race condition.
Fixes <https://issues.guix.gnu.org/38432>. * gnu/packages/patches/containerd-create-pid-file.patch: New file. * gnu/local.mk (dist_patch_DATA): Add this. * gnu/packages/docker.scm (containerd)[source]: Add this patch. * gnu/services/docker.scm (containerd-shepherd-service): Add #:pid-file and #:pid-file-timeout. * gnu/services/docker.scm (docker-shepherd-service): Add --containerd flag. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
parent
5f8adea86c
commit
b33e1a183f
4 changed files with 41 additions and 4 deletions
31
gnu/packages/patches/containerd-create-pid-file.patch
Normal file
31
gnu/packages/patches/containerd-create-pid-file.patch
Normal file
|
@ -0,0 +1,31 @@
|
|||
Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
|
||||
Create a PID file after containerd is ready to serve requests.
|
||||
|
||||
Fixes <https://issues.guix.gnu.org/38432>.
|
||||
|
||||
--- a/cmd/containerd/command/notify_linux.go 1970-01-01 03:00:01.000000000 +0300
|
||||
+++ b/cmd/containerd/command/notify_linux.go 2022-07-02 04:42:35.553753495 +0300
|
||||
@@ -22,15 +22,22 @@
|
||||
sd "github.com/coreos/go-systemd/v22/daemon"
|
||||
|
||||
"github.com/containerd/containerd/log"
|
||||
+
|
||||
+ "os"
|
||||
+ "strconv"
|
||||
)
|
||||
|
||||
// notifyReady notifies systemd that the daemon is ready to serve requests
|
||||
func notifyReady(ctx context.Context) error {
|
||||
+ pidFile, _ := os.Create("/run/containerd/containerd.pid")
|
||||
+ defer pidFile.Close()
|
||||
+ pidFile.WriteString(strconv.FormatInt(int64(os.Getpid()), 10))
|
||||
return sdNotify(ctx, sd.SdNotifyReady)
|
||||
}
|
||||
|
||||
// notifyStopping notifies systemd that the daemon is about to be stopped
|
||||
func notifyStopping(ctx context.Context) error {
|
||||
+ os.Remove("/run/containerd/containerd.pid")
|
||||
return sdNotify(ctx, sd.SdNotifyStopping)
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue