all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Tobias Geerinckx-Rice <me@tobias.gr>
Cc: jackhill@jackhill.us, 55596-done@debbugs.gnu.org,
	hugonobrega@ic.ufrj.br, 55587@debbugs.gnu.org
Subject: bug#55587: bug#55596: Guix/Guile segfaults on `guix import texlive`
Date: Fri, 05 Aug 2022 14:22:43 +0200	[thread overview]
Message-ID: <87czdehobw.fsf@gnu.org> (raw)
In-Reply-To: <87sfo5psp2.fsf_-_@gnu.org> ("Ludovic Courtès"'s message of "Wed, 15 Jun 2022 22:39:21 +0200")

Hi,

Ludovic Courtès <ludo@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@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@ribbon ~/src/guix [env]$ rm -f core
ludo@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@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@entry=0x7ffd286a3c78, mode_flags=mode_flags@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@entry=0x7ffd286a3c78, mode_flags=mode_flags@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’.




      reply	other threads:[~2022-08-05 12:23 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-22 20:26 bug#55587: `guix import texlive PKG` fails with signal 11, no output Hugo Nobrega
2022-05-25 10:36 ` bug#55596: Guix/Guile segfaults on `guix import texlive` Ludovic Courtès
2022-05-26  0:20   ` Hugo
2022-05-26 13:36     ` bug#55596: bug#55587: " Jack Hill
2022-05-28 17:19       ` Ludovic Courtès
2022-05-28 18:51         ` Tobias Geerinckx-Rice via Bug reports for GNU Guix
2022-05-29 10:19           ` Hugo
2022-06-15 20:39           ` Ludovic Courtès
2022-08-05 12:22             ` Ludovic Courtès [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87czdehobw.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=55587@debbugs.gnu.org \
    --cc=55596-done@debbugs.gnu.org \
    --cc=hugonobrega@ic.ufrj.br \
    --cc=jackhill@jackhill.us \
    --cc=me@tobias.gr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.