GNU bug report logs - #68357
[PATCH] service: fix `unload all` * modules/shepherd/service.scm: fix `unload all`

Previous Next

Package: guix-patches;

Reported by: "zero <at> fedora" <shinyzero0 <at> tilde.club>

Date: Wed, 10 Jan 2024 00:32:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #14 received at 68357 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: "zero <at> fedora" <shinyzero0 <at> tilde.club>
Cc: 68357 <at> debbugs.gnu.org
Subject: Re: [bug#68357] [PATCH] shepherd: service: fix `unload all`
Date: Sun, 14 Jan 2024 22:33:18 +0100
Hi,

"zero <at> fedora" <shinyzero0 <at> tilde.club> skribis:

> * modules/shepherd/service.scm: fix `unload all`

Thanks for the patch!

> -      (('unregister-all)                          ;no reply
> -       (let ((root (cdr (vhash-assq 'root registered))))
> -         (loop (fold (cut vhash-consq <> root <>)
> -                     vlist-null
> -                     (service-provision root)))))
>        (('lookup name reply)
>         ;; Look up NAME and return it, or #f, to REPLY.
>         (put-message reply
> @@ -2638,8 +2633,11 @@ requested to be removed."
>    (let ((name (string->symbol service-name)))
>      (cond ((eq? name 'all)
>             ;; Special 'remove all' case.
> -           (put-message (current-registry-channel) `(unregister-all))
> -           #t)
> +           (unregister-services
> +             (filter
> +               (lambda (sv)
> +                 (not (eq? (service-canonical-name sv) 'root)))
> +               (service-list))))

Do I get it right that the problem with the current implementation is
that services are removed from the registry but not actually stopped?

Ludo’.





This bug report was last modified 1 year and 121 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.