[Shepherd] Replaced services remain active in the shadows

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
important
L
L
Ludovic Courtès wrote on 25 May 2023 14:59
(address . bug-guix@gnu.org)
87h6s0efdh.fsf@inria.fr
Hello!

A bug we noticed with the Shepherd 0.10.0 on berlin: after
reconfiguring, which registers a “replacement” for services currently
running, restarting said services (with ‘herd restart’ or similar, which
is supposed to instate the replacement) happens to leave the old service
behind.

Example: ‘ssh-daemon’ is marked as stopped because it cannot bind to
port 22; indeed, there’s still a service listening on port 22, the one
service that should have been replaced.

Likewise for ‘cuirass-web’ for instance: it’s marked as failing to
start, but in fact it’s running; if you try to kill the ‘cuirass web’
process, you can see it’s respawned and /var/log/messages shows that
very clearly.

What seems to happen is that, in both cases, the registry points to the
new service; ‘herd status’ & co. look up the service by name in the
registry, find the new service, and rightfully show that it’s stopped.
But the old service still exists: it’s no longer in the registry, but it
handles SIGCHLD, incoming connections on port 22, etc.

Ludo’.
L
L
Ludovic Courtès wrote on 25 May 2023 15:07
control message for bug #63717
(address . control@debbugs.gnu.org)
87fs7keezf.fsf@gnu.org
severity 63717 important
quit
L
L
Ludovic Courtès wrote on 25 May 2023 17:01
Re: bug#63717: [Shepherd] Replaced services remain active in the shadows
(address . 63717@debbugs.gnu.org)
87o7m8cv50.fsf@gnu.org
Ludovic Courtès <ludovic.courtes@inria.fr> skribis:

Toggle quote (6 lines)
> What seems to happen is that, in both cases, the registry points to the
> new service; ‘herd status’ & co. look up the service by name in the
> registry, find the new service, and rightfully show that it’s stopped.
> But the old service still exists: it’s no longer in the registry, but it
> handles SIGCHLD, incoming connections on port 22, etc.

Fixed in Shepherd commit 63af9d7c4460b55953bfa199ea44ac0114289b64.

We’ll have to make a new release soon.

Ludo’.
L
L
Ludovic Courtès wrote on 30 May 2023 00:20
(address . 63717-done@debbugs.gnu.org)
878rd6eq5d.fsf@gnu.org
Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (12 lines)
> Ludovic Courtès <ludovic.courtes@inria.fr> skribis:
>
>> What seems to happen is that, in both cases, the registry points to the
>> new service; ‘herd status’ & co. look up the service by name in the
>> registry, find the new service, and rightfully show that it’s stopped.
>> But the old service still exists: it’s no longer in the registry, but it
>> handles SIGCHLD, incoming connections on port 22, etc.
>
> Fixed in Shepherd commit 63af9d7c4460b55953bfa199ea44ac0114289b64.
>
> We’ll have to make a new release soon.

Released 0.10.1, and updated the package in commit
b8f89ab2c9d0c459ce158ee16a4f4a6542b88ce0.

Ludo’.
Closed
?