* bug#63982: Shepherd can crash when a user service fails to start @ 2023-06-09 17:13 Maxim Cournoyer 2023-06-12 13:44 ` Ludovic Courtès 2023-06-18 15:14 ` bug#63982: Shepherd wrong-type-arg nils 0 siblings, 2 replies; 13+ messages in thread From: Maxim Cournoyer @ 2023-06-09 17:13 UTC (permalink / raw) To: 63982; +Cc: Ludovic Courtès [-- Attachment #1: Type: text/plain, Size: 10125 bytes --] Hi! I've noticed that while all my user services (managed via GNU Stow -- not via Guix Home) were working, 'herd status' would report that /run/user/1000/shepherd/socket was missing and bail out. Starting from a nonexistent /run/user/1000/shepherd/socket, using old Shepherd 0.9.1: --8<---------------cut here---------------start------------->8--- $ /gnu/store/dblbnj1yra4yrrfjbnzsa0ldcl3170ap-shepherd-0.9.1/bin/shepherd Service root has been started. WARNING: Use of `load' in declarative module (#{ g115}#). Add #:declarative? #f to your define-module invocation. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. $ Warning: due to a long standing Gtk+ bug https://gitlab.gnome.org/GNOME/gtk/issues/221 Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. Loading time (native compiled elisp)... Loading time (native compiled elisp)...done Loading /home/maxim/.emacs.d/recentf... Loading /home/maxim/.emacs.d/recentf...done Cleaning up the recentf list... Cleaning up the recentf list...done (0 removed) ../../.emacs: Warning: Use keywords rather than deprecated positional arguments to `define-minor-mode' Preparing diary... No diary entries for Friday, June 9, 2023 Preparing diary...done Appointment reminders enabled Loading /home/maxim/.emacs.d/emms/cache... Loading /home/maxim/.emacs.d/emms/cache...done [yas] Prepared just-in-time loading of snippets successfully. [yas] Prepared just-in-time loading of snippets successfully. Starting new Ispell process aspell with english dictionary... \ Starting new Ispell process aspell with english dictionary...done Starting Emacs daemon. Unable to start the daemon. Another instance of Emacs is running the server, either as daemon or interactively. You can use emacsclient to connect to that Emacs process. Saving file /home/maxim/.emacs.d/emms/history... Wrote /home/maxim/.emacs.d/emms/history Wrote /home/maxim/.emacs.d/recentf Error: server did not start correctly Service emacs could not be started. gpg-agent: a gpg-agent is already running - not starting a new one Service gpg-agent could not be started. Service ibus-daemon has been started. $ herd status Started: + ibus-daemon + root Stopped: - emacs - gpg-agent - jackd - workrave --8<---------------cut here---------------end--------------->8--- If I then run it anew, it fails with "shepherd: while opening socket '/run/user/1000/shepherd/socket': bind: Address already in use", because apparently 'herd stop root' didn't remove it. --8<---------------cut here---------------start------------->8--- $ herd stop root Exiting. [...] $ /gnu/store/dblbnj1yra4yrrfjbnzsa0ldcl3170ap-shepherd-0.9.1/bin/shepherd Service root has been started. WARNING: Use of `load' in declarative module (#{ g115}#). Add #:declarative? #f to your define-module invocation. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. maxim@hurd ~/src/guix [env]$ Warning: due to a long standing Gtk+ bug https://gitlab.gnome.org/GNOME/gtk/issues/221 Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. Loading time (native compiled elisp)... Loading time (native compiled elisp)...done Loading /home/maxim/.emacs.d/recentf... Loading /home/maxim/.emacs.d/recentf...done Cleaning up the recentf list... Cleaning up the recentf list...done (0 removed) ../../.emacs: Warning: Use keywords rather than deprecated positional arguments to `define-minor-mode' Preparing diary... No diary entries for Friday, June 9, 2023 Preparing diary...done Appointment reminders enabled Loading /home/maxim/.emacs.d/emms/cache... Loading /home/maxim/.emacs.d/emms/cache...done [yas] Prepared just-in-time loading of snippets successfully. [yas] Prepared just-in-time loading of snippets successfully. Starting new Ispell process aspell with english dictionary... \ Starting new Ispell process aspell with english dictionary...done Starting Emacs daemon. Unable to start the daemon. Another instance of Emacs is running the server, either as daemon or interactively. You can use emacsclient to connect to that Emacs process. Saving file /home/maxim/.emacs.d/emms/history... Wrote /home/maxim/.emacs.d/emms/history Wrote /home/maxim/.emacs.d/recentf Error: server did not start correctly Service emacs could not be started. gpg-agent: a gpg-agent is already running - not starting a new one Service gpg-agent could not be started. Service ibus-daemon has been started. shepherd: while opening socket '/run/user/1000/shepherd/socket': bind: Address already in use Exiting shepherd... Service ibus-daemon has been stopped. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. $ --8<---------------cut here---------------end--------------->8--- Even after removing it manually with 'rm /run/user/1000/shepherd/socket', it still fails: --8<---------------cut here---------------start------------->8--- $ /gnu/store/dblbnj1yra4yrrfjbnzsa0ldcl3170ap-shepherd-0.9.1/bin/shepherd Service root has been started. WARNING: Use of `load' in declarative module (#{ g115}#). Add #:declarative? #f to your define-module invocation. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. maxim@hurd ~/src/guix [env]$ Warning: due to a long standing Gtk+ bug https://gitlab.gnome.org/GNOME/gtk/issues/221 Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. Loading time (native compiled elisp)... Loading time (native compiled elisp)...done Loading /home/maxim/.emacs.d/recentf... Loading /home/maxim/.emacs.d/recentf...done Cleaning up the recentf list... Cleaning up the recentf list...done (0 removed) ../../.emacs: Warning: Use keywords rather than deprecated positional arguments to `define-minor-mode' Preparing diary... No diary entries for Friday, June 9, 2023 Preparing diary...done Appointment reminders enabled Loading /home/maxim/.emacs.d/emms/cache... Loading /home/maxim/.emacs.d/emms/cache...done [yas] Prepared just-in-time loading of snippets successfully. [yas] Prepared just-in-time loading of snippets successfully. Starting new Ispell process aspell with english dictionary... \ Starting new Ispell process aspell with english dictionary...done Starting Emacs daemon. Unable to start the daemon. Another instance of Emacs is running the server, either as daemon or interactively. You can use emacsclient to connect to that Emacs process. Saving file /home/maxim/.emacs.d/emms/history... Wrote /home/maxim/.emacs.d/emms/history Wrote /home/maxim/.emacs.d/recentf Error: server did not start correctly Service emacs could not be started. gpg-agent: a gpg-agent is already running - not starting a new one Service gpg-agent could not be started. Service ibus-daemon has been started. shepherd: while opening socket '/run/user/1000/shepherd/socket': bind: Address already in use Exiting shepherd... Service ibus-daemon has been stopped. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. --8<---------------cut here---------------end--------------->8--- It apparently is caused by Emacs failing to start, because if I comment it out from the init.scm file, then the same Shepherd invocation is happy: --8<---------------cut here---------------start------------->8--- ;; Services to start when shepherd starts: (for-each start '(;emacs gpg-agent ibus-daemon)) --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- $ herd status Started: + ibus-daemon + root Stopped: - emacs - gpg-agent - jackd - workrave --8<---------------cut here---------------end--------------->8--- But that's with Shepherd 0.9.1. If I run the exact same config that now works, I see: --8<---------------cut here---------------start------------->8--- rm /run/user/1000/shepherd/socket $ /gnu/store/y826g8wrpzskcs82ffxppj7mmz257ksi-shepherd-0.10.1/bin/shepherd Starting service root... Service root started. Service root running with value #t. Service root has been started. WARNING: Use of `load' in declarative module (#{ g119}#). Add #:declarative? #f to your define-module invocation. Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. Starting service gpg-agent... $ herd status herd: error: /run/user/1000/shepherd/socket: No such file or directory $ file /run/user/1000/shepherd/socket /run/user/1000/shepherd/socket: cannot open `/run/user/1000/shepherd/socket' (No such file or directory) $ pgrep -a shepherd 1 /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/bin/guile --no-auto-compile /gnu/store/nl0948z46yndpx3kihhi540l5c422wv4-shepherd-0.10.0/bin/shepherd --config /gnu/store/7dxbjccbqamk4wa0nyf7zsc4ywimb1fh-shepherd.conf 24700 /gnu/store/4gvgcfdiz67wv04ihqfa8pqwzsb0qpv5-guile-3.0.9/bin/guile --no-auto-compile /gnu/store/y826g8wrpzskcs82ffxppj7mmz257ksi-shepherd-0.10.1/bin/shepherd --8<---------------cut here---------------end--------------->8--- It seems a bug exists in both 0.9.1 and 0.10.1, but that something also regressed going from 0.9.1 to 0.10.1. Attached are the two relevant Shepherd config files to test: [-- Attachment #2: init.scm --] [-- Type: application/octet-stream, Size: 287 bytes --] ;;; Shepherd User Services (load "services.scm") (register-services emacs gpg-agent jackd ibus-daemon workrave) ;; Send shepherd into the background. (action 'shepherd 'daemonize) ;; Services to start when shepherd starts: (for-each start '(emacs gpg-agent ibus-daemon)) [-- Attachment #3: services.scm --] [-- Type: application/octet-stream, Size: 1178 bytes --] (define emacs (make <service> #:provides '(emacs) #:requires '() #:start (make-system-constructor "emacs --daemon") #:stop (make-system-destructor "emacsclient --eval \"(kill-emacs)\""))) (define ibus-daemon (make <service> #:provides '(ibus-daemon) #:requires '() #:start (make-system-constructor "ibus-daemon --xim --daemonize --replace") #:stop (make-system-destructor "pkill ibus-daemon"))) (define jackd (make <service> #:provides '(jackd) #:requires '() #:start (make-system-constructor "jackd -d alsa &") #:stop (make-system-destructor "pkill jackd"))) (define gpg-agent (let ((pinentry (string-append (getenv "HOME") "/.guix-profile/bin/pinentry"))) (make <service> #:provides '(gpg-agent) #:requires '() #:start (make-system-constructor (string-append "gpg-agent --daemon " "--pinentry-program " pinentry)) #:stop (make-system-destructor "gpgconf --kill gpg-agent")))) (define workrave (make <service> #:provides '(workrave) #:requires '() #:start (make-system-constructor "workrave &") #:stop (make-system-destructor "pkill -9 workrave"))) [-- Attachment #4: Type: text/plain, Size: 19 bytes --] -- Thanks, Maxim ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-06-09 17:13 bug#63982: Shepherd can crash when a user service fails to start Maxim Cournoyer @ 2023-06-12 13:44 ` Ludovic Courtès 2023-06-12 17:32 ` Maxim Cournoyer 2023-06-18 15:14 ` bug#63982: Shepherd wrong-type-arg nils 1 sibling, 1 reply; 13+ messages in thread From: Ludovic Courtès @ 2023-06-12 13:44 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 63982 Hi Maxim, Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > rm /run/user/1000/shepherd/socket > > $ /gnu/store/y826g8wrpzskcs82ffxppj7mmz257ksi-shepherd-0.10.1/bin/shepherd > Starting service root... > Service root started. > Service root running with value #t. > Service root has been started. > WARNING: Use of `load' in declarative module (#{ g119}#). Add #:declarative? #f to your define-module invocation. > > Some deprecated features have been used. Set the environment > variable GUILE_WARN_DEPRECATED to "detailed" and rerun the > program to get more information. Set it to "no" to suppress > this message. > Starting service gpg-agent... > > $ herd status > herd: error: /run/user/1000/shepherd/socket: No such file or directory Thanks for the detailed bug report! I believe this is fixed by Shepherd commit 24c964021ebd3d63ce6e22808dd09dbe16116a6c, which introduces an additional change: loading the config file asynchronously. If you wish to test it, you can use the ‘shepherd’ channel. Let me know how it goes! Thanks, Ludo’. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-06-12 13:44 ` Ludovic Courtès @ 2023-06-12 17:32 ` Maxim Cournoyer 2023-06-14 15:57 ` Ludovic Courtès 0 siblings, 1 reply; 13+ messages in thread From: Maxim Cournoyer @ 2023-06-12 17:32 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 63982 Hi Ludovic! Ludovic Courtès <ludo@gnu.org> writes: > Hi Maxim, > > Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > >> rm /run/user/1000/shepherd/socket >> >> $ /gnu/store/y826g8wrpzskcs82ffxppj7mmz257ksi-shepherd-0.10.1/bin/shepherd >> Starting service root... >> Service root started. >> Service root running with value #t. >> Service root has been started. >> WARNING: Use of `load' in declarative module (#{ g119}#). Add #:declarative? #f to your define-module invocation. >> >> Some deprecated features have been used. Set the environment >> variable GUILE_WARN_DEPRECATED to "detailed" and rerun the >> program to get more information. Set it to "no" to suppress >> this message. >> Starting service gpg-agent... >> >> $ herd status >> herd: error: /run/user/1000/shepherd/socket: No such file or directory > > Thanks for the detailed bug report! > > I believe this is fixed by Shepherd commit > 24c964021ebd3d63ce6e22808dd09dbe16116a6c, which introduces an additional > change: loading the config file asynchronously. Nitpick: I'd use a git message tag for 'Reported-by', as can be inserted in the commit buffer in Magit with C-c C-p. They should be placed at the bottom of the git message to be considered by tools parsing them. > If you wish to test it, you can use the ‘shepherd’ channel. I've done so by placing in my ~/.config/guix/channels.scm file: (channel (name 'shepherd) (url "https://git.savannah.gnu.org/git/shepherd.git") (introduction (make-channel-introduction "788a6d6f1d5c170db68aa4bbfb77024fdc468ed3" ;2022-05-21 (openpgp-fingerprint "3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5")))) It'd be nice to have this in the Shepherd doc for easy copy & paste. > Let me know how it goes! I've edited my ~/.xsession file to use /gnu/store/ahzl8vxxcd5bqlljwgn8wkp4884sr72l-shepherd-0.10.99-tarball, and I'm now seeing this: --8<---------------cut here---------------start------------->8--- $ herd status Démarrés : + root Starting: ^ emacs Arrêtés : - gpg-agent - ibus-daemon - jackd - workrave --8<---------------cut here---------------end--------------->8--- Interestingly, the Emacs client is usable. It doesn't change from there, and requesting it to be stopped hangs Shepherd: --8<---------------cut here---------------start------------->8--- $ herd stop emacs --8<---------------cut here---------------end--------------->8--- If I comment out the Emacs service from the ~/.config/shepherd/init.scm file, the same seems to happen on my next service, gpg-agent: --8<---------------cut here---------------start------------->8--- $ herd status Démarrés : + root Starting: ^ gpg-agent Arrêtés : - emacs - ibus-daemon - jackd - workrave --8<---------------cut here---------------end--------------->8--- Etc. if I comment that one (now hanging on starting ibus-daemon). It seems something is still off? Thanks for working toward a fix! -- Thanks, Maxim ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-06-12 17:32 ` Maxim Cournoyer @ 2023-06-14 15:57 ` Ludovic Courtès 2023-06-19 1:42 ` bug#63982: Service hangs in 'starting' with Shepherd 0.10 (was: Shepherd can crash when a user service fails to start) Maxim Cournoyer 0 siblings, 1 reply; 13+ messages in thread From: Ludovic Courtès @ 2023-06-14 15:57 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 63982 Hi, Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: >> I believe this is fixed by Shepherd commit >> 24c964021ebd3d63ce6e22808dd09dbe16116a6c, which introduces an additional >> change: loading the config file asynchronously. > > Nitpick: I'd use a git message tag for 'Reported-by', as can be inserted > in the commit buffer in Magit with C-c C-p. They should be placed at > the bottom of the git message to be considered by tools parsing them. Neat, I didn’t know about it, I’ll do that now (I think I started using the “Reported by” convention before Git came into existence…). >> If you wish to test it, you can use the ‘shepherd’ channel. > > I've done so by placing in my ~/.config/guix/channels.scm file: > > (channel > (name 'shepherd) > (url "https://git.savannah.gnu.org/git/shepherd.git") > (introduction > (make-channel-introduction > "788a6d6f1d5c170db68aa4bbfb77024fdc468ed3" ;2022-05-21 > (openpgp-fingerprint > "3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5")))) > > > It'd be nice to have this in the Shepherd doc for easy copy & paste. I’ll add that to ‘README’. >> Let me know how it goes! > > I've edited my ~/.xsession file to use > /gnu/store/ahzl8vxxcd5bqlljwgn8wkp4884sr72l-shepherd-0.10.99-tarball, > and I'm now seeing this: > > $ herd status > Démarrés : > + root > Starting: > ^ emacs > Arrêtés : > - gpg-agent > - ibus-daemon > - jackd > - workrave Uh, so it remains in “starting” state? > Interestingly, the Emacs client is usable. It doesn't change from > there, and requesting it to be stopped hangs Shepherd: Technically it’s waiting for ‘emacs’ to be in “running” state before attempting to stop it. > If I comment out the Emacs service from the ~/.config/shepherd/init.scm > file, the same seems to happen on my next service, gpg-agent: > > $ herd status > Démarrés : > + root > Starting: > ^ gpg-agent > Arrêtés : > - emacs > - ibus-daemon > - jackd > - workrave > > Etc. if I comment that one (now hanging on starting ibus-daemon). It > seems something is still off? Looks like it. Could you share ~/.local/var/log/shepherd.log? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Service hangs in 'starting' with Shepherd 0.10 (was: Shepherd can crash when a user service fails to start) 2023-06-14 15:57 ` Ludovic Courtès @ 2023-06-19 1:42 ` Maxim Cournoyer 2023-06-21 14:20 ` bug#63982: Shepherd can crash when a user service fails to start Ludovic Courtès 2023-06-22 21:35 ` Ludovic Courtès 0 siblings, 2 replies; 13+ messages in thread From: Maxim Cournoyer @ 2023-06-19 1:42 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 63982 [-- Attachment #1: Type: text/plain, Size: 5738 bytes --] Hi Ludo, Ludovic Courtès <ludo@gnu.org> writes: > Hi, > > Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > >>> I believe this is fixed by Shepherd commit >>> 24c964021ebd3d63ce6e22808dd09dbe16116a6c, which introduces an additional >>> change: loading the config file asynchronously. >> >> Nitpick: I'd use a git message tag for 'Reported-by', as can be inserted >> in the commit buffer in Magit with C-c C-p. They should be placed at >> the bottom of the git message to be considered by tools parsing them. > > Neat, I didn’t know about it, I’ll do that now (I think I started using > the “Reported by” convention before Git came into existence…). > >>> If you wish to test it, you can use the ‘shepherd’ channel. >> >> I've done so by placing in my ~/.config/guix/channels.scm file: >> >> (channel >> (name 'shepherd) >> (url "https://git.savannah.gnu.org/git/shepherd.git") >> (introduction >> (make-channel-introduction >> "788a6d6f1d5c170db68aa4bbfb77024fdc468ed3" ;2022-05-21 >> (openpgp-fingerprint >> "3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5")))) >> >> >> It'd be nice to have this in the Shepherd doc for easy copy & paste. > > I’ll add that to ‘README’. Neat, thank you. >>> Let me know how it goes! >> >> I've edited my ~/.xsession file to use >> /gnu/store/ahzl8vxxcd5bqlljwgn8wkp4884sr72l-shepherd-0.10.99-tarball, >> and I'm now seeing this: >> >> $ herd status >> Démarrés : >> + root >> Starting: >> ^ emacs >> Arrêtés : >> - gpg-agent >> - ibus-daemon >> - jackd >> - workrave > > Uh, so it remains in “starting” state? Yes! Which is surprising, because it's actually running fine, and Shepherd 0.9.3 didn't have this issue (perhaps because it only knew of a started/stopped service). The other surprising thing is that because it thinks that Emacs hasn't finished starting, it doesn't even attempt to try starting the other services; they remain stopped although they should work. [...] > Looks like it. Could you share ~/.local/var/log/shepherd.log? I have something a bit more detailed, with various versions (the logs are under ~/.local/state/shepherd/shepherd.log by default). If you need to, you should be able to reproduce on your end using the attached ~/.config/shepherd/{init.scm,services.scm} files (and ensuring the service commands are on your PATH): --8<---------------cut here---------------start------------->8--- Using /gnu/store/dblbnj1yra4yrrfjbnzsa0ldcl3170ap-shepherd-0.9.1/bin/shepherd $ herd status Started: + Emacs + Gpg-agent + ibus-daemon + jackd + root + workrave Using /gnu/store/cdc1gzbp3q15kdiwn2i5j3437jwx61ac-shepherd-0.9.2/bin/shepherd $ herd status Started: + emacs + gpg-agent + ibus-daemon + jackd + root + workrave Using /gnu/store/a9jdd8kgckwlq97yw3pjqs6sy4lqgrfq-shepherd-0.9.3/bin/shepherd $ herd status Started: + emacs + gpg-agent + ibus-daemon + jackd + root + workrave ~/.local/state/shepherd/shepherd.log: 2023-06-18 21:04:47 Service root démarré. 2023-06-18 21:04:57 Service emacs démarré. 2023-06-18 21:04:57 Service jackd démarré. 2023-06-18 21:04:57 Service gpg-agent démarré. 2023-06-18 21:04:57 Service ibus-daemon démarré. 2023-06-18 21:04:57 Service workrave démarré. Using /gnu/store/ahzl8vxxcd5bqlljwgn8wkp4884sr72l-shepherd-0.10.99-tarball/bin/shepherd $ herd status Started: + root Starting: ^ emacs Stopped: - gpg-agent - ibus-daemon - jackd - workrave ~/.local/state/shepherd/shepherd.log: 2023-06-18 21:06:12 Starting service root... 2023-06-18 21:06:12 Service root started. 2023-06-18 21:06:12 Service root running with value #t. 2023-06-18 21:06:12 Service root démarré. 2023-06-18 21:06:12 Starting service emacs... 2023-06-18 21:06:12 [bash] 2023-06-18 21:06:12 [bash] Warning: due to a long standing Gtk+ bug 2023-06-18 21:06:12 [bash] https://gitlab.gnome.org/GNOME/gtk/issues/221 2023-06-18 21:06:12 [bash] Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. 2023-06-18 21:06:12 [bash] Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. 2023-06-18 21:06:13 [bash] Loading time (native compiled elisp)... 2023-06-18 21:06:13 [bash] Loading time (native compiled elisp)...done 2023-06-18 21:06:13 [bash] Loading /home/maxim/.emacs.d/recentf... 2023-06-18 21:06:13 [bash] Loading /home/maxim/.emacs.d/recentf...done 2023-06-18 21:06:13 [bash] Cleaning up the recentf list... 2023-06-18 21:06:13 [bash] Cleaning up the recentf list...done (0 removed) 2023-06-18 21:06:13 [bash] .emacs: Warning: Use keywords rather than deprecated positional arguments to `define-minor-mode' 2023-06-18 21:06:15 [bash] Preparing diary... 2023-06-18 21:06:15 [bash] No diary entries for Sunday, June 18, 2023: Father's Day 2023-06-18 21:06:15 [bash] Preparing diary...done 2023-06-18 21:06:15 [bash] Appointment reminders enabled 2023-06-18 21:06:16 [bash] Loading /home/maxim/.emacs.d/emms/cache... 2023-06-18 21:06:16 [bash] Loading /home/maxim/.emacs.d/emms/cache...done 2023-06-18 21:06:18 [bash] [yas] Prepared just-in-time loading of snippets successfully. 2023-06-18 21:06:20 [bash] [yas] Prepared just-in-time loading of snippets successfully. 2023-06-18 21:06:22 [bash] Starting new Ispell process aspell with english dictionary... \ 2023-06-18 21:06:22 [bash] Starting new Ispell process aspell with english dictionary...done 2023-06-18 21:06:22 [bash] Starting Emacs daemon. --8<---------------cut here---------------end--------------->8--- [-- Attachment #2: init.scm --] [-- Type: application/octet-stream, Size: 417 bytes --] ;;; Shepherd User Services (load "services.scm") (register-services emacs gpg-agent jackd ibus-daemon workrave) ;; Send shepherd into the background. (action 'shepherd 'daemonize) ;;; FIXME: All disabled because of this bug: https://issues.guix.gnu.org/63982 ;; Services to start when shepherd starts: (for-each start '(emacs jackd gpg-agent ibus-daemon workrave)) [-- Attachment #3: services.scm --] [-- Type: application/octet-stream, Size: 1178 bytes --] (define emacs (make <service> #:provides '(emacs) #:requires '() #:start (make-system-constructor "emacs --daemon") #:stop (make-system-destructor "emacsclient --eval \"(kill-emacs)\""))) (define ibus-daemon (make <service> #:provides '(ibus-daemon) #:requires '() #:start (make-system-constructor "ibus-daemon --xim --daemonize --replace") #:stop (make-system-destructor "pkill ibus-daemon"))) (define jackd (make <service> #:provides '(jackd) #:requires '() #:start (make-system-constructor "jackd -d alsa &") #:stop (make-system-destructor "pkill jackd"))) (define gpg-agent (let ((pinentry (string-append (getenv "HOME") "/.guix-profile/bin/pinentry"))) (make <service> #:provides '(gpg-agent) #:requires '() #:start (make-system-constructor (string-append "gpg-agent --daemon " "--pinentry-program " pinentry)) #:stop (make-system-destructor "gpgconf --kill gpg-agent")))) (define workrave (make <service> #:provides '(workrave) #:requires '() #:start (make-system-constructor "workrave &") #:stop (make-system-destructor "pkill -9 workrave"))) [-- Attachment #4: Type: text/plain, Size: 19 bytes --] -- Thanks, Maxim ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-06-19 1:42 ` bug#63982: Service hangs in 'starting' with Shepherd 0.10 (was: Shepherd can crash when a user service fails to start) Maxim Cournoyer @ 2023-06-21 14:20 ` Ludovic Courtès 2023-06-22 21:35 ` Ludovic Courtès 1 sibling, 0 replies; 13+ messages in thread From: Ludovic Courtès @ 2023-06-21 14:20 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 63982 Hi, Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > The other surprising thing is that because it thinks that Emacs hasn't > finished starting, it doesn't even attempt to try starting the other > services; they remain stopped although they should work. This is because you’re starting them sequentially with: (for-each start …) If you instead use ‘start-in-the-background’, it’ll start them in parallel. (BTW, you might want to use the new interface eventually: <https://gnu.org/s/shepherd/manual/html_node/Legacy-GOOPS-Interface.html>.) > Using /gnu/store/ahzl8vxxcd5bqlljwgn8wkp4884sr72l-shepherd-0.10.99-tarball/bin/shepherd > > $ herd status > Started: > + root > Starting: > ^ emacs > Stopped: > - gpg-agent > - ibus-daemon > - jackd > - workrave > > ~/.local/state/shepherd/shepherd.log: > > 2023-06-18 21:06:12 Starting service root... > 2023-06-18 21:06:12 Service root started. > 2023-06-18 21:06:12 Service root running with value #t. > 2023-06-18 21:06:12 Service root démarré. > 2023-06-18 21:06:12 Starting service emacs... > 2023-06-18 21:06:12 [bash] > 2023-06-18 21:06:12 [bash] Warning: due to a long standing Gtk+ bug > 2023-06-18 21:06:12 [bash] https://gitlab.gnome.org/GNOME/gtk/issues/221 > 2023-06-18 21:06:12 [bash] Emacs might crash when run in daemon mode and the X11 connection is unexpectedly lost. > 2023-06-18 21:06:12 [bash] Using an Emacs configured with --with-x-toolkit=lucid does not have this problem. > 2023-06-18 21:06:13 [bash] Loading time (native compiled elisp)... > 2023-06-18 21:06:13 [bash] Loading time (native compiled elisp)...done > 2023-06-18 21:06:13 [bash] Loading /home/maxim/.emacs.d/recentf... > 2023-06-18 21:06:13 [bash] Loading /home/maxim/.emacs.d/recentf...done > 2023-06-18 21:06:13 [bash] Cleaning up the recentf list... > 2023-06-18 21:06:13 [bash] Cleaning up the recentf list...done (0 removed) > 2023-06-18 21:06:13 [bash] .emacs: Warning: Use keywords rather than deprecated positional arguments to `define-minor-mode' > 2023-06-18 21:06:15 [bash] Preparing diary... > 2023-06-18 21:06:15 [bash] No diary entries for Sunday, June 18, 2023: Father's Day > 2023-06-18 21:06:15 [bash] Preparing diary...done > 2023-06-18 21:06:15 [bash] Appointment reminders enabled > 2023-06-18 21:06:16 [bash] Loading /home/maxim/.emacs.d/emms/cache... > 2023-06-18 21:06:16 [bash] Loading /home/maxim/.emacs.d/emms/cache...done > 2023-06-18 21:06:18 [bash] [yas] Prepared just-in-time loading of snippets successfully. > 2023-06-18 21:06:20 [bash] [yas] Prepared just-in-time loading of snippets successfully. > 2023-06-18 21:06:22 [bash] Starting new Ispell process aspell with english dictionary... \ > 2023-06-18 21:06:22 [bash] Starting new Ispell process aspell with english dictionary...done > 2023-06-18 21:06:22 [bash] Starting Emacs daemon. And what’s the process tree like, if you run “pstree -p N” where N is the PID of shepherd? It looks as though ‘bash -c "emacs --daemon"’ didn’t terminate, which is what’s needed to transition from “starting” to “running”. Could you ‘strace -f -s 100 -o /tmp/log.strace shepherd’, keeping only the ‘emacs’ service? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-06-19 1:42 ` bug#63982: Service hangs in 'starting' with Shepherd 0.10 (was: Shepherd can crash when a user service fails to start) Maxim Cournoyer 2023-06-21 14:20 ` bug#63982: Shepherd can crash when a user service fails to start Ludovic Courtès @ 2023-06-22 21:35 ` Ludovic Courtès 2023-06-26 15:53 ` Maxim Cournoyer 2023-07-12 17:46 ` Ludovic Courtès 1 sibling, 2 replies; 13+ messages in thread From: Ludovic Courtès @ 2023-06-22 21:35 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 63982 Hi, Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > Ludovic Courtès <ludo@gnu.org> writes: [...] >> Uh, so it remains in “starting” state? > > Yes! Turns out that this happens when calling the ‘daemonize’ action on ‘root’. I have a reproducer now and am investigating… Ludo’. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-06-22 21:35 ` Ludovic Courtès @ 2023-06-26 15:53 ` Maxim Cournoyer 2023-07-12 17:46 ` Ludovic Courtès 1 sibling, 0 replies; 13+ messages in thread From: Maxim Cournoyer @ 2023-06-26 15:53 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 63982 Hi Ludo, Ludovic Courtès <ludo@gnu.org> writes: > Hi, > > Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > >> Ludovic Courtès <ludo@gnu.org> writes: > > [...] > >>> Uh, so it remains in “starting” state? >> >> Yes! > > Turns out that this happens when calling the ‘daemonize’ action on > ‘root’. I have a reproducer now and am investigating… Great, thanks for investigating and let me know if I can provide something useful. It seems introducing cooperative scheduling is a path layered with traps, eh :-). -- Thanks, Maxim ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-06-22 21:35 ` Ludovic Courtès 2023-06-26 15:53 ` Maxim Cournoyer @ 2023-07-12 17:46 ` Ludovic Courtès 2023-07-19 1:11 ` Maxim Cournoyer 1 sibling, 1 reply; 13+ messages in thread From: Ludovic Courtès @ 2023-07-12 17:46 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 63982 [-- Attachment #1: Type: text/plain, Size: 1267 bytes --] Hi! Ludovic Courtès <ludo@gnu.org> skribis: > Turns out that this happens when calling the ‘daemonize’ action on > ‘root’. I have a reproducer now and am investigating… Good news: this is fixed in Shepherd commit f4272d2f0f393d2aa3e9d76b36ab6aa5f2fc72c2! The root cause is inconsistent semantics when mixing epoll, signalfd, and fork, specifically this part from signalfd(2): epoll(7) semantics If a process adds (via epoll_ctl(2)) a signalfd file descriptor to an epoll(7) instance, then epoll_wait(2) returns events only for signals sent to that process. In particular, if the process then uses fork(2) to create a child process, then the child will be able to read(2) sig‐ nals that are sent to it using the signalfd file descriptor, but epoll_wait(2) will not indicate that the signalfd file descriptor is ready. In this scenario, a possible workaround is that after the fork(2), the child process can close the signalfd file descriptor that it inherited from the parent process and then create another signalfd file descriptor and add it to the epoll instance. […] The C program below illustrates this behavior: [-- Attachment #2: The C program. --] [-- Type: text/plain, Size: 1472 bytes --] #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/signal.h> #include <sys/signalfd.h> #include <sys/epoll.h> int main () { int ep, sfd; sigset_t signals; sigemptyset (&signals); sigaddset (&signals, SIGINT); sigaddset (&signals, SIGHUP); sigprocmask (SIG_BLOCK, &signals, NULL); sfd = signalfd (-1, &signals, SFD_CLOEXEC); ep = epoll_create1 (EPOLL_CLOEXEC); struct epoll_event events = { .events = EPOLLIN | EPOLLONESHOT, .data = NULL }; epoll_ctl (ep, EPOLL_CTL_ADD, sfd, &events); epoll_wait (ep, &events, 1, 123); if (fork () == 0) { /* Quoth signalfd(2): If a process adds (via epoll_ctl(2)) a signalfd file descriptor to an epoll(7) instance, then epoll_wait(2) returns events only for signals sent to that process. In particular, if the process then uses fork(2) to create a child process, then the child will be able to read(2) sig‐ nals that are sent to it using the signalfd file descriptor, but epoll_wait(2) will not indicate that the signalfd file descriptor is ready. */ printf ("try this: kill -INT %i\n", getpid ()); while (1) { struct signalfd_siginfo info; if (epoll_wait (ep, &events, 1, 777) > 0) { read (sfd, &info, sizeof info); printf ("got signal %i!\n", info.ssi_signo); epoll_ctl (ep, EPOLL_CTL_MOD, sfd, &events); } } } return 0; } [-- Attachment #3: Type: text/plain, Size: 218 bytes --] Of course it took me a while to find out about this; I first looked at things individually and didn’t expect the mixture to behave inconsistently. Maxim, let me know if it works for you! Thanks, Ludo’. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-07-12 17:46 ` Ludovic Courtès @ 2023-07-19 1:11 ` Maxim Cournoyer 0 siblings, 0 replies; 13+ messages in thread From: Maxim Cournoyer @ 2023-07-19 1:11 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 63982-done Hey Ludo! Ludovic Courtès <ludo@gnu.org> writes: > Hi! > > Ludovic Courtès <ludo@gnu.org> skribis: > >> Turns out that this happens when calling the ‘daemonize’ action on >> ‘root’. I have a reproducer now and am investigating… > > Good news: this is fixed in Shepherd commit > f4272d2f0f393d2aa3e9d76b36ab6aa5f2fc72c2! > > The root cause is inconsistent semantics when mixing epoll, signalfd, > and fork, specifically this part from signalfd(2): > > epoll(7) semantics > If a process adds (via epoll_ctl(2)) a signalfd file descriptor to an > epoll(7) instance, then epoll_wait(2) returns events only for signals > sent to that process. In particular, if the process then uses fork(2) > to create a child process, then the child will be able to read(2) sig‐ > nals that are sent to it using the signalfd file descriptor, but > epoll_wait(2) will not indicate that the signalfd file descriptor is > ready. In this scenario, a possible workaround is that after the > fork(2), the child process can close the signalfd file descriptor that > it inherited from the parent process and then create another signalfd > file descriptor and add it to the epoll instance. […] > > The C program below illustrates this behavior: > > #include <stdlib.h> > #include <stdio.h> > #include <unistd.h> > #include <sys/signal.h> > #include <sys/signalfd.h> > #include <sys/epoll.h> > > int > main () > { > int ep, sfd; > > sigset_t signals; > sigemptyset (&signals); > sigaddset (&signals, SIGINT); > sigaddset (&signals, SIGHUP); > > sigprocmask (SIG_BLOCK, &signals, NULL); > sfd = signalfd (-1, &signals, SFD_CLOEXEC); > > ep = epoll_create1 (EPOLL_CLOEXEC); > > struct epoll_event events = { .events = EPOLLIN | EPOLLONESHOT, .data = NULL }; > epoll_ctl (ep, EPOLL_CTL_ADD, sfd, &events); > > epoll_wait (ep, &events, 1, 123); > > if (fork () == 0) > { > /* Quoth signalfd(2): > > If a process adds (via epoll_ctl(2)) a signalfd file descriptor to an > epoll(7) instance, then epoll_wait(2) returns events only for signals > sent to that process. In particular, if the process then uses fork(2) > to create a child process, then the child will be able to read(2) sig‐ > nals that are sent to it using the signalfd file descriptor, but > epoll_wait(2) will not indicate that the signalfd file descriptor is > ready. */ > > printf ("try this: kill -INT %i\n", getpid ()); > while (1) > { > struct signalfd_siginfo info; > if (epoll_wait (ep, &events, 1, 777) > 0) > { > read (sfd, &info, sizeof info); > printf ("got signal %i!\n", info.ssi_signo); > epoll_ctl (ep, EPOLL_CTL_MOD, sfd, &events); > } > } > } > > return 0; > } > > > Of course it took me a while to find out about this; I first looked at > things individually and didn’t expect the mixture to behave > inconsistently. Tricky! Thanks for sharing the result of your investigation, it's always enlightening! > Maxim, let me know if it works for you! Better than ever! Thanks a lot for fixing the various issues reported here. I'm closing this one! -- Thanks, Maxim ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd wrong-type-arg 2023-06-09 17:13 bug#63982: Shepherd can crash when a user service fails to start Maxim Cournoyer 2023-06-12 13:44 ` Ludovic Courtès @ 2023-06-18 15:14 ` nils 2023-06-22 20:08 ` bug#63982: Shepherd can crash when a user service fails to start Ludovic Courtès 1 sibling, 1 reply; 13+ messages in thread From: nils @ 2023-06-18 15:14 UTC (permalink / raw) To: 63982@debbugs.gnu.org Hello, I am affected by this as well, but with slightly different symptoms. Using guix home on a foreign system (Debian 12), I tried different shepherd versions with (service home-shepherd-service-type (home-shepherd-configuration (shepherd (specification->package "shepherd@0.9"))) , and guix home describe --list-installed shows me that this works (in the sense that a different shepherd version is installed). None of the versions I tried got me a functional shepherd service. These are the error messages by shepherd version: 0.8.1: Service root has been started. WARNING: Use of `load' in declarative module (#{ g91}#). Add #:declarative? #f to your define-module invocation. Loading /gnu/store/w6rlja8v65dwv16ivcqx513q7827n6aq-shepherd.conf. herd: exception caught while executing 'load' on service 'root': In procedure string-append: Wrong type (expecting string): #f No /run/user/1000/shepherd/socket is created. 0.9.3: Service root has been started. WARNING: Use of `load' in declarative module (#{ g117}#). Add #:declarative? #f to your define-module invocation. wrong-type-arg("string-append" "Wrong type (expecting ~A): ~S" ("string" #f) (#f)) Some deprecated features have been used. Set the environment variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program to get more information. Set it to "no" to suppress this message. No /run/user/1000/shepherd/socket is created. 0.10.1: Starting service root... Service root started. Service root running with value #t. Service root has been started. WARNING: Use of `load' in declarative module (#{ g107}#). Add #:declarative? #f to your define-module invocation. wrong-type-arg("string-append" "Wrong type (expecting ~A): ~S" ("string" #f) (#f)) No /run/user/1000/shepherd/socket is created. 0.10.99: Starting service root... Service root started. Service root running with value #t. Service root has been started. WARNING: Use of `load' in declarative module (#{ g119}#). Add #:declarative? #f to your define-module invocation. Uncaught exception while loading configuration file '/gnu/store/w6rlja8v65dwv16ivcqx513q7827n6aq-shepherd.conf': (wrong-type-arg "string-append" "Wrong type (expecting ~A): ~S" ("string" #f) (#f)) , and then the reconfiguration hangs. /run/user/1000/shepherd/socket is created, and herd status shows that root is started, other services are not shown, and are not started. Content of config (/gnu/store/w6rlja8v65dwv16ivcqx513q7827n6aq-shepherd.conf): (begin (use-modules (srfi srfi-34) (system repl error-handling)) (apply register-services (map (lambda (file) (load file)) (quote ("/gnu/store/71n4r0hccps574aqcks7zyk5rz5zardq- shepherd-eww.scm" "/gnu/store/0r14z4psnf9h2nfqiflm0nv6m2bv04si-shepherd-eww-open-lockscreen-like-background.scm" "/gnu/store/ylidynn5akvk3lmqrxbgqkz0c8hn3y8c-shepherd-syncthing .scm" "/gnu/store/9igwbpbwavl6r94ph7qss7i5cqq9d8nj-shepherd-mcron.scm")))) (action (quote root) (quote daemonize)) (format #t "Starting services...~%") (let ((services-to-start (quote (eww eww-open-lockscreen-like-background syncthing mcron)))) (if (defined? (quote start-in-the-background)) (start-in-the-background services-to-start) (for-each start services-to-start)) (redirect-port (open-input-file "/dev/null") (current-input-port)))) ~/.local/state/log/shepherd.log does not contain anything that's not already in the messages above. Is there anything else I can provide? Without a running shepherd, my system doesn't work super well. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-06-18 15:14 ` bug#63982: Shepherd wrong-type-arg nils @ 2023-06-22 20:08 ` Ludovic Courtès 2023-06-25 13:03 ` nils 0 siblings, 1 reply; 13+ messages in thread From: Ludovic Courtès @ 2023-06-22 20:08 UTC (permalink / raw) To: nils; +Cc: 63982@debbugs.gnu.org Hi, nils@landt.email skribis: > 0.10.99: > Starting service root... > Service root started. > Service root running with value #t. > Service root has been started. > WARNING: Use of `load' in declarative module (#{ g119}#). Add #:declarative? #f to your define-module invocation. > Uncaught exception while loading configuration file '/gnu/store/w6rlja8v65dwv16ivcqx513q7827n6aq-shepherd.conf': (wrong-type-arg "string-append" "Wrong type (expecting ~A): ~S" > ("string" #f) (#f)) > > , and then the reconfiguration hangs. /run/user/1000/shepherd/socket is created, and herd status shows that root is started, other services are not shown, and are not started. > > > Content of config (/gnu/store/w6rlja8v65dwv16ivcqx513q7827n6aq-shepherd.conf): > (begin (use-modules (srfi srfi-34) (system repl error-handling)) (apply register-services (map (lambda (file) (load file)) (quote ("/gnu/store/71n4r0hccps574aqcks7zyk5rz5zardq- > shepherd-eww.scm" "/gnu/store/0r14z4psnf9h2nfqiflm0nv6m2bv04si-shepherd-eww-open-lockscreen-like-background.scm" "/gnu/store/ylidynn5akvk3lmqrxbgqkz0c8hn3y8c-shepherd-syncthing > .scm" "/gnu/store/9igwbpbwavl6r94ph7qss7i5cqq9d8nj-shepherd-mcron.scm")))) (action (quote root) (quote daemonize)) (format #t "Starting services...~%") (let ((services-to-start > (quote (eww eww-open-lockscreen-like-background syncthing mcron)))) (if (defined? (quote start-in-the-background)) (start-in-the-background services-to-start) (for-each start > services-to-start)) (redirect-port (open-input-file "/dev/null") (current-input-port)))) This suggests a problem in the config file: one of the shepherd-*.scm files listed above ends up calling (string-append #f …). We’d need to see those files to understand what’s happening but it looks different from what Maxim reported. Thanks, Ludo’. ^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#63982: Shepherd can crash when a user service fails to start 2023-06-22 20:08 ` bug#63982: Shepherd can crash when a user service fails to start Ludovic Courtès @ 2023-06-25 13:03 ` nils 0 siblings, 0 replies; 13+ messages in thread From: nils @ 2023-06-25 13:03 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 63982@debbugs.gnu.org > Ludovic Courtès <ludo@gnu.org> hat am 22.06.2023 22:08 CEST geschrieben: > This suggests a problem in the config file: one of the shepherd-*.scm > files listed above ends up calling (string-append #f …). > > We’d need to see those files to understand what’s happening but it looks > different from what Maxim reported. Indeed I misdiagnosed the issue because it happened after a guix upgrade. I used $XDG_LOG_HOME in my shepherd services, and as of f74df2ab879fc5457982bbc85b7455a90e82317d this is no longer set by default. Thanks for your help! ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2023-07-19 1:12 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-06-09 17:13 bug#63982: Shepherd can crash when a user service fails to start Maxim Cournoyer 2023-06-12 13:44 ` Ludovic Courtès 2023-06-12 17:32 ` Maxim Cournoyer 2023-06-14 15:57 ` Ludovic Courtès 2023-06-19 1:42 ` bug#63982: Service hangs in 'starting' with Shepherd 0.10 (was: Shepherd can crash when a user service fails to start) Maxim Cournoyer 2023-06-21 14:20 ` bug#63982: Shepherd can crash when a user service fails to start Ludovic Courtès 2023-06-22 21:35 ` Ludovic Courtès 2023-06-26 15:53 ` Maxim Cournoyer 2023-07-12 17:46 ` Ludovic Courtès 2023-07-19 1:11 ` Maxim Cournoyer 2023-06-18 15:14 ` bug#63982: Shepherd wrong-type-arg nils 2023-06-22 20:08 ` bug#63982: Shepherd can crash when a user service fails to start Ludovic Courtès 2023-06-25 13:03 ` nils
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.