Subject: Re: bug#34209: guix --version: ERROR: In procedure display: In procedure fport_write: Broken pipe

From: Ricardo Wurmus <[email-masked]>
Date: Sun, 27 Jan 2019 18:57:08 +0100

Pierre Neidhardt <[email-masked]> writes:

> In Bash:
> --8<---------------cut here---------------start------------->8---
> $ guix --version | awk '{print $4; exit}'
> Backtrace:
>            5 (primitive-load "/home/ambrevar/.config/guix/current/bin/guix")
> In guix/ui.scm:
>     464:2  4 (show-version-and-exit _)
> In ice-9/format.scm:
>   1590:19  3 (format #t "Copyright ~a 2019 ~a" "(C)" "the Guix authors\n")
>    261:19  2 (format:format-work "Copyright ~a 2019 ~a" ("(C)" "the Guix authors\n"))
>     70:10  1 (format:out-obj-padded _ _ _ _)
> In unknown file:
>            0 (display "the Guix authors\n" #<output: file 1>)
>
> ERROR: In procedure display:
> In procedure fport_write: Broken pipe
> --8<---------------cut here---------------end--------------->8---

This happens because awk closes the stream while we’re writing to it.
We could wrap the things in “run-guix” in (leave-on-EPIPE …).

Or we tell Guix not to ignore SIGPIPE.

See also https://issues.guix.info/issue/29826.

--
Ricardo