Hi!
Mathieu Othacehe <[email protected]> skribis:
>> I'll keep looking!
>
> Ok, getting closer. Here's a suspect part of Shepherd strace log:
>
> [pid 1] stat("/etc/localtime", {st_mode=S_IFREG|0444, st_size=2298, ...})
> = 0
> [pid 1] write(9, "shepherd[1]: changing HTTP/HTTPS"..., 86) = 86
> [pid 1] getpgid(194) = 194
> [pid 1] kill(-194, SIGTERM) = 0
>
>
> I think the problem is introduced by commit
> 1e7a91d21f1cc5d02697680e19e3878ff8565710 in Shepherd.
OK, but the trace above is “as expected”, isn’t it?
> "(getpgid <guix-daemon-pid>") returns 0, and calling "(kill 0 SIGTERM)"
> kills all processes.
What made you think of this scenario?
I don’t think getpgid(2) can return 0. Or am I missing something?
Since guix-dameon doesn’t actually daemonize, getpgid(pid) = pid.
Running this (in a VM) works fine:
while herd set-http-proxy guix-daemon foo ; do : ; done
Thanks for debugging!
Ludo’.