GNU bug report logs - #55596
Guix/Guile segfaults on `guix import texlive`

Previous Next

Package: guix;

Reported by: Jack Hill <jackhill <at> jackhill.us>

Date: Mon, 23 May 2022 18:30:02 UTC

Severity: normal

Merged with 55587

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: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Hugo Nobrega <hugonobrega <at> ic.ufrj.br>
Subject: bug#55587: closed (Re: bug#55596: Guix/Guile segfaults on `guix
 import texlive`)
Date: Fri, 05 Aug 2022 12:23:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#55596: `guix import texlive PKG` fails with signal 11, no output

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 55587 <at> debbugs.gnu.org.

-- 
55596: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=55596
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: Tobias Geerinckx-Rice <me <at> tobias.gr>
Cc: jackhill <at> jackhill.us, 55596-done <at> debbugs.gnu.org, hugonobrega <at> ic.ufrj.br,
 55587 <at> debbugs.gnu.org
Subject: Re: bug#55596: Guix/Guile segfaults on `guix import texlive`
Date: Fri, 05 Aug 2022 14:22:43 +0200
Hi,

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

> I don’t think so; the error message that was reported is:
>
>   command "svn" "export" "--non-interactive" "--trust-server-cert" "-r" "59745" "svn://www.tug.org/texlive/tags/texlive-2021.3/Master/texmf-dist/doc/latex/cite/" "/tmp/guix-directory.09UnsN/doc/latex/cite/" failed with signal 11
>
> It’s a message from ‘report-invoke-error’ in (guix build utils).  It’s
> really svn that’s segfaulting.

Maybe not!  I can trigger it reproducibly:

--8<---------------cut here---------------start------------->8---
ludo <at> ribbon ~/src/guix [env]$ guix describe
Generation 223  Aug 01 2022 00:30:24    (current)
  guix ab59155
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: ab59155c5a38dda7efaceb47c7528578fcf0def4
ludo <at> ribbon ~/src/guix [env]$ rm -f core
ludo <at> ribbon ~/src/guix [env]$ guix import texlive abstract
command "svn" "export" "--non-interactive" "--trust-server-cert" "-r" "59745" "svn://www.tug.org/texlive/tags/texlive-2021.3/Master/texmf-dist/doc/latex/abstract/" "/tmp/guix-directory.HYEHpM/doc/latex/abstract/" failed with signal 11
guix import: error: failed to download description for package 'abstract'
ludo <at> ribbon ~/src/guix [env]$ file core
core: ELF 64-bit LSB core file, x86-64, version 1 (SYSV), SVR4-style, from '/gnu/store/9z95jms1r801z1kxpiq5xw594cxaw5jx-guile-wrapper/bin/guile --no-auto-c', real uid: 1000, effective uid: 1000, real gid: 998, effective gid: 998, execfn: '/home/ludo/.config/guix/current/bin/guix', platform: 'x86_64'
--8<---------------cut here---------------end--------------->8---

Actually it happens when ‘svn’ is not in $PATH, triggering a crash in
Guile as it tries to display an error in the child process:

--8<---------------cut here---------------start------------->8---
$ gdb /gnu/store/9z95jms1r801z1kxpiq5xw594cxaw5jx-guile-wrapper/bin/guile core

[...]

Core was generated by `/gnu/store/9z95jms1r801z1kxpiq5xw594cxaw5jx-guile-wrapper/bin/guile --no-auto-c'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __vfprintf_internal (s=0x0, format=0x7f9da91744e2 "In execvp of %s: %s\n", 
    ap=ap <at> entry=0x7ffd286a3c78, mode_flags=mode_flags <at> entry=0) at vfprintf-internal.c:1359
1359    vfprintf-internal.c: No such file or directory.
(gdb) bt
#0  __vfprintf_internal (s=0x0, format=0x7f9da91744e2 "In execvp of %s: %s\n", 
    ap=ap <at> entry=0x7ffd286a3c78, mode_flags=mode_flags <at> entry=0) at vfprintf-internal.c:1359
#1  0x00007f9da8ed3589 in __fprintf (stream=<optimized out>, format=<optimized out>)
    at fprintf.c:32
#2  0x00007f9da913fd93 in ?? ()
   from /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/lib/libguile-3.0.so.1
#3  0x00007f9da9140e01 in scm_system_star ()
   from /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8/lib/libguile-3.0.so.1

[...]
--8<---------------cut here---------------end--------------->8---

This is because the fdopen(2, "a") call in ‘start_child’ returns NULL:

--8<---------------cut here---------------start------------->8---
$ ltrace -f -e fdopen /bin/sh -c 'guix import texlive abstract'
[pid 22937] --- Called exec() ---
[pid 22945] libguile-3.0.so.1->fdopen(2, 0x7fddfd364a4a, -1, -112) = 0
[pid 22945] --- SIGSEGV (Segmentation fault) ---
--8<---------------cut here---------------end--------------->8---

It can be reproduced like this:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> (parameterize ((current-output-port (current-error-port))) (system* "sdfsdf"))
$1 = 139
scheme@(guile-user)> (status:term-sig $1)
$2 = 11
scheme@(guile-user)> (version)
$3 = "3.0.8"
--8<---------------cut here---------------end--------------->8---

Fixed in Guile commit 56b1ea9002d2d3967b597aa0ee7595e815b21f23.

Back to the original issue Jack and Hugo reported: you need to add ‘svn’
to $PATH to make things work.  :-)

Thanks,
Ludo’.

[Message part 3 (message/rfc822, inline)]
From: Hugo Nobrega <hugonobrega <at> ic.ufrj.br>
To: bug-guix <at> gnu.org
Subject: `guix import texlive PKG` fails with signal 11, no output
Date: Sun, 22 May 2022 17:26:23 -0300
Hello,

The guix 'texlive' package importer is not working with any package, as
far as I can tell. It does *some* legwork, managing to figure out the
correct URI of the package, but then errors out with signal 11.

Having had a look at previous bug reports, it seems this "signal 11"
thing is not new (e.g., bug#28303), but in any case I am not seeing any
output after the error (unlike what seemed to be happening in bug#28303)

Example:

hugo <at> hp-guix ~$ guix import texlive cite
command "svn" "export" "--non-interactive" "--trust-server-cert" "-r"
"59745"
"svn://www.tug.org/texlive/tags/texlive-2021.3/Master/texmf-dist/doc/latex/cite/"
"/tmp/guix-directory.09UnsN/doc/latex/cite/" failed with signal 11 guix
import: error: failed to import package 'cite'

Best regards,
Hugo



This bug report was last modified 2 years and 290 days ago.

Previous Next


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