[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#65463: Herd `fport_write: Broken pipe` error when running `guix home
From: |
Elias Kueny |
Subject: |
bug#65463: Herd `fport_write: Broken pipe` error when running `guix home reconfigure` |
Date: |
Sat, 09 Sep 2023 16:09:46 +0000 |
I experience the same thing. I hadn't updated guix since may (last generation
was commit 91bfd30ee3f35dfb7048bf42aea92f939cffbf17), and since I did I'm
encountering issues with shepherd.
Probably unrelated, but for the record: my first issue was caused by the disappearance of the
XDG_LOG_HOME environment variable. I was using it in the definition of shepherd services (as for
example `#:log-file (string-append (getenv "XDG_LOG_HOME")
"/emacs-daemon.log")`. Guix home reconfigure worked because the getenv wasn't evaluated
immediately, but after a reboot the syntax error prevented shepherd to start the session.
But once I solved that, same problems: shepherd seems to hang somewhere after
starting the home services.
herd status:
--8<---------------cut here---------------start------------->8---
Started:
+ root
Starting:
^ emacs-daemon
^ ssh-agent
^ syncthing
--8<---------------cut here---------------end--------------->8---
~/.local/state/log/shepherd.log:
--8<---------------cut here---------------start------------->8---
2023-09-09 16:12:42 Service root started.
2023-09-09 16:12:42 Service root running with value #t.
2023-09-09 16:12:42 Service root has been started.
2023-09-09 16:12:42 Daemonizing...
2023-09-09 16:12:42 Restarting signal handler.
2023-09-09 16:12:42 Now running as process 430.
2023-09-09 16:12:42 Starting services...
2023-09-09 16:12:42 Configuration successfully loaded from
'/gnu/store/mq01z0gvi1zv3skk6xh1q7g4id6hsgdk-shepherd.conf'.
2023-09-09 16:12:42 Starting service ssh-agent...
2023-09-09 16:12:42 Starting service syncthing...
2023-09-09 16:12:42 Starting service emacs-daemon...
2023-09-09 16:12:42 Service ssh-agent has been started.
2023-09-09 16:12:42 Service syncthing has been started.
--- guix home reconfigure happened here ---
2023-09-09 16:59:00 Service emacs-daemon has been started.
2023-09-09 16:59:00 SSSL2023-09-09 16:59:00 oading
/gnu/store/mlvqhkb37zy3yycriv3lmqah7yff34af-shepherd.conf.
--8<---------------cut here---------------end--------------->8---
My 3 services are working normally. If I try to run `herd restart
emacs-daemon`, the command hangs until I press Ctrl-C and nothing happens to
emacs. Same thing for the other services (and for `herd stop`).
Here's how my services are defined. If I comment out all occurrences of
`home-shepherd-service-type` in my home configuration (not just commenting
%emacs-daemon-user-service and running it with an empty list of services), then
there is no error when running `guix home reconfigure`.
--8<---------------cut here---------------start------------->8---
(define %emacs-daemon-user-service
(shepherd-service
(documentation "Run emacs-daemon.")
(provision '(emacs-daemon))
(start #~(make-forkexec-constructor
(list #$(file-append (specification->package %emacs-package) "/bin/emacs")
"--fg-daemon")
#:log-file (string-append #$(getenv "HOME")
"/.local/var/log/emacs-daemon.log")))
(stop #~(make-system-destructor "emacsclient --eval \"(kill-emacs)\""))
(auto-start? #t)
(respawn? #t)))
(define-public emacs-services
(list (simple-service 'emacs-shepherd-service
home-shepherd-service-type
(list %emacs-daemon-user-service))))
(home-environment (services `(,@emacs-services […])))
--8<---------------cut here---------------end--------------->8---
When reconfiguring with an home-shepherd-service-type service but not shepherd
service in the list:
--8<---------------cut here---------------start------------->8---
Finished updating symlinks.
Loading /gnu/store/26jgrxzmabjdl3nhjx16cqa1f5h3flks-shepherd.conf.
herd: error: exception caught while executing 'load' on service 'root':
In procedure fport_write: Broken pipe
Comparing /gnu/store/4vmxyl8fykz9wkrkicnv5azhvr1gb5i1-home/profile/share/fonts
and
/gnu/store/3wlqdh4i4zmwjmqa69isr62nvbgf7abh-home/profile/share/fonts... done
(same)
Comparing
/gnu/store/4vmxyl8fykz9wkrkicnv5azhvr1gb5i1-home/files/.config/fish/fish_plugins
and
/gnu/store/3wlqdh4i4zmwjmqa69isr62nvbgf7abh-home/files/.config/fish/fish_plugins...
done (same)
Evaluating on-change gexps.
On-change gexps evaluation finished.
--8<---------------cut here---------------end--------------->8---
Only new line in ~/.local/state/log/shepherd.log:
--8<---------------cut here---------------start------------->8---
2023-09-09 17:45:07 Loading
/gnu/store/26jgrxzmabjdl3nhjx16cqa1f5h3flks-shepherd.conf.
--8<---------------cut here---------------end--------------->8---
/gnu/store/26jgrxzmabjdl3nhjx16cqa1f5h3flks-shepherd.conf:
--8<---------------cut here---------------start------------->8---
(begin (use-modules (srfi srfi-34) (system repl error-handling)) (apply register-services (map
(lambda (file) (load file)) (quote ()))) (action (quote root) (quote daemonize)) (format #t
"Starting services...~%") (let ((services-to-start (quote ()))) (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))))
--8<---------------cut here---------------end--------------->8---
So I would guess it's a problem in home-shepherd-service-type, and not in the
custom service definitions. I also remember the broken pipe error showing
previously, but shepherd commands hanging is new.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#65463: Herd `fport_write: Broken pipe` error when running `guix home reconfigure`,
Elias Kueny <=