Subject: Re: [bug#76811] [PATCH] services: nginx: Replace invoke with spawn-command.

From: Christopher Baines <[email-masked]>
Date: Fri, 07 Mar 2025 17:18:52 +0000

Ludovic Courtès <[email-masked]> writes:

> Christopher Baines <[email-masked]> skribis:
>
>> I'm not sure where invoke is coming from here, but it could be from (guix
>> build utils), that uses system* which uses waitpid, which might cause problems
>> with recent versions of the shepherd?
>>
>> At least I'm seeing issues on multiple machines where attempting to restart
>> the nginx service sometimes causes the shepherd to hang.
>>
>> * gnu/services/web.scm (nginx-shepherd-service): Replace invoke with
>> spawn-command.
>>
>> Change-Id: Ie9ce4be9a4df121465b28148612b4fbc45fb5126
>
> Hi!  ‘invoke’ uses ‘system*’, which is an alias for ‘spawn-command’ (see
> ‘replace-core-bindings!’ in ‘shepherd.scm’) so the only effect of this
> patch is that errors from “nginx -c nginx.conf …” would be ignored.

Ah, yes, I see, I've tried to verify this and it does seem that the
nginx server is using this system* replacement.

> I think we need a reproducer for the hang so we can pinpoint the
> problem because it’s a pretty serious bug!

I did try restarting nginx over and over again in the system test os,
but that seemed to work.

On a VM I have though, it only takes a few restarts for it to hang, I'm
not sure why though.