GNU bug report logs - #66254
"guix --version | head -1" crashes most of the time

Previous Next

Package: guix;

Reported by: Clément Lassieur <clement <at> lassieur.org>

Date: Thu, 28 Sep 2023 10:22:01 UTC

Severity: normal

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

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Clément Lassieur <clement <at> lassieur.org>, 66254 <at> debbugs.gnu.org
Subject: bug#66254: "guix --version | head -1" crashes most of the time
Date: Thu, 12 Oct 2023 00:30:58 +0200
[Message part 1 (text/plain, inline)]
Hi Clément,

On Thu, 28 Sep 2023 at 12:20, Clément Lassieur <clement <at> lassieur.org> wrote:
>> guix --version | cat | head -1
> works

Not for me.

--8<---------------cut here---------------start------------->8---
$ guix --version | cat | head -1
guix (GNU Guix) 6113e0529d61df7425f64e30a6bf77f7cfdfe5a5
Backtrace:
           3 (primitive-load "/home/simon/.config/guix/current/bin/guix")
In guix/ui.scm:
   2312:7  2 (run-guix . _)
    563:2  1 (show-version-and-exit _)
In unknown file:
           0 (display "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.\n" #<unde…>)

ERROR: In procedure display:
In procedure fport_write: Broken pipe
--8<---------------cut here---------------end--------------->8---

>> guix --version | head -1
> crashes most of the time

And note that:

--8<---------------cut here---------------start------------->8---
$ guix --version | head -2
guix (GNU Guix) 6113e0529d61df7425f64e30a6bf77f7cfdfe5a5
Copyright (C) 2023 the Guix authors
--8<---------------cut here---------------end--------------->8---

Well, I do not know if it is related, please note:

--8<---------------cut here---------------start------------->8---
(define* (show-version-and-exit #:optional (command (car (command-line))))
  "Display version information for COMMAND and `(exit 0)'."
  (simple-format #t "~a (~a) ~a~%"
                 command %guix-package-name %guix-version)
  (format #t "Copyright ~a 2023 ~a"
--8<---------------cut here---------------end--------------->8---

Anyway.  The issue is from leave-on-EPIPE.  This patch fixes the issue,
I guess.

[p.patch (text/x-diff, inline)]
diff --git a/guix/ui.scm b/guix/ui.scm
index 6f2d4fe245..507bc67f1d 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -2309,7 +2309,7 @@ (define (run-guix . args)
       ((or ("-h") ("--help"))
        (leave-on-EPIPE (show-guix-help)))
       ((or ("-V") ("--version"))
-       (show-version-and-exit "guix"))
+       (leave-on-EPIPE (show-version-and-exit "guix")))
       (((? option? o) args ...)
        (format (current-error-port)
                (G_ "guix: unrecognized option '~a'~%") o)
[Message part 3 (text/plain, inline)]
Does it fix the issue?

Cheers,
simon

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

Previous Next


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