Hi. I'm testing caretakerd on some Docker containers, which has some very nice features (especially being able to spawn and control several process, and cron jobs !). I'm using tini as entrypoint, which in turn launch caretakerd with this simple config
logger:
level: debug
services:
lemonldap:
type: master
command: ["lemonldap-ng"]
local_cache:
command: ["/usr/libexec/lemonldap-ng/bin/purgeLocalCache"]
cronExpression: '1 * * * *'
nginx:
command: ["nginx", "-c", "${LLNG_NGINX_CONF}"]
Everything is working, but sometime (not always), caretakerd panic when the container shuts down
panic: send on closed channel [recovered]
panic: send on closed channel
goroutine 29 [running]:
github.com/echocat/caretakerd/sync.(*Mutex).Lock.func1()
/home/runner/work/caretakerd/caretakerd/sync/mutex.go:44 +0x16a
panic({0x882820, 0x9a7b20})
/opt/hostedtoolcache/go/1.20.1/x64/src/runtime/panic.go:884 +0x213
github.com/echocat/caretakerd/sync.(*Mutex).Lock(0xc000056b70?)
/home/runner/work/caretakerd/caretakerd/sync/mutex.go:49 +0x87
github.com/echocat/caretakerd/sync.(*Condition).doLock(...)
/home/runner/work/caretakerd/caretakerd/sync/condition.go:57
github.com/echocat/caretakerd/sync.(*Condition).wait.func1()
/home/runner/work/caretakerd/caretakerd/sync/condition.go:42 +0x25
github.com/echocat/caretakerd/sync.(*Condition).wait(0xc000012078, 0x1?, 0x1)
/home/runner/work/caretakerd/caretakerd/sync/condition.go:52 +0x19a
github.com/echocat/caretakerd/sync.(*Condition).Wait(...)
/home/runner/work/caretakerd/caretakerd/sync/condition.go:34
github.com/echocat/caretakerd/service.(*Execution).Stop(0xc00006e0c0)
/home/runner/work/caretakerd/caretakerd/service/execution.go:310 +0x1bc
github.com/echocat/caretakerd.(*Execution).Stop(0xc0000ceff0, 0xc000128700)
/home/runner/work/caretakerd/caretakerd/execution.go:273 +0xb5
github.com/echocat/caretakerd.(*Execution).stopOthers.func1(0x0?)
/home/runner/work/caretakerd/caretakerd/execution.go:193 +0x4a
created by github.com/echocat/caretakerd.(*Execution).stopOthers
/home/runner/work/caretakerd/caretakerd/execution.go:192 +0x8b