Hello,
Mathieu Othacehe skribis:
>>> The work-around here is to save the installed SIGTERM handler and reset
>>> it. Then, after forking, the parent can restore the SIGTERM handler. The
>>> child will use the default SIGTERM handler that terminates the process.
>>
>> OK, makes sense. (Another o
Hey Ludo,
> Woow, good catch!
Thanks :)
>> The work-around here is to save the installed SIGTERM handler and reset
>> it. Then, after forking, the parent can restore the SIGTERM handler. The
>> child will use the default SIGTERM handler that terminates the process.
>
> OK, makes sense. (Anothe
Hi!
Mathieu Othacehe skribis:
> The previous patch was not working. The reason is that, when a process
> is forked and before execv is called, it shares the parent signal
> handler.
>
> So when sending a SIGTERM to the child process, we are stopping
> root-service, if the signal is received befo
Hello,
The previous patch was not working. The reason is that, when a process
is forked and before execv is called, it shares the parent signal
handler.
So when sending a SIGTERM to the child process, we are stopping
root-service, if the signal is received before the child has forked.
The work-
Hello,
I found what happened here. Turns out, when a process is forked and
before "setsid" or "setpgid" is called, it shares the parent PGID. In
that case the parent is Shepherd, with the PGID 0.
When doing the following actions:
* stop guix-daemon
* start guix-daemon
* stop guix-daemon
* star
Hey!
> OK, but the trace above is “as expected”, isn’t it?
Oh sorry, I pasted the wrong part! Here's the part where getpgid returns
zero and the full log in attachment:
--8<---cut here---start->8---
[pid 1] stat("/etc/localtime", {st_mode=S_IFREG|0444, st
Hi!
Mathieu Othacehe 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]
> I'll keep looking!
Ok, getting closer. Here's a suspect part of Shepherd strace log:
--8<---cut here---start->8---
[pid 1] stat("/etc/localtime", {st_mode=S_IFREG|0444, st_size=2298, ...}) = 0
[pid 1] write(9, "shepherd[1]: changing HTTP/HTTPS"...,
Hello,
Graphical installer tests sometimes hang, before starting marionette
tests. See for instance:
https://ci.guix.gnu.org/log/d31s9sycixhvfak5lpzdg0mzvz5aa9av-gui-installed-os-encrypted.
Restarting tests just after a hang (on the same installed image),
sometimes work. I removed the "quiet" k