Segmentation fault when calling 'git-predicate' in a package file

  • Done
  • quality assurance status badge
Details
2 participants
  • Ingo Ruhnke
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ingo Ruhnke
Severity
important
I
I
Ingo Ruhnke wrote on 15 Apr 2021 15:21
(address . bug-guix@gnu.org)
CAHz1FYjJcFcfs7N-=defK8VWUSw5PHBnMQOKdSVy0Yg79nkKPQ@mail.gmail.com
Calling git-predicate from a simple package file causes guix to segfault.
Bisect traced it down to this commit:


commit c1940fde43c7aca37d67589cc5cb248086d17d56
Author: Ludovic Courtès <ludo@gnu.org>
Date: Fri Mar 19 11:51:20 2021 +0100

git-download: Autoload Guile-Git.

* guix/git-download.scm: Autoload (git ...) modules.


Steps to reproduce the issue:

$ cat mypkg.scm
(use-modules (guix git-download))
(git-predicate "/tmp")

$ guix package -f mypkg.scm
Segmentation fault (core dumped)

$ guix --version
guix (GNU Guix) 1bab9b9f17256a9e4f45f5b0cceb8b52e0a1b1ed

(gdb) where
#0 0x0000000000000000 in ?? ()
#1 0x00007fffeb0f44c4 in git_buf_try_grow () from
/gnu/store/jil14glx1j7mrj4cvzmw876rzyv7i960-libgit2-1.1.0/lib/libgit2.so
#2 0x00007fffeb0f47a5 in git_buf_set () from
/gnu/store/jil14glx1j7mrj4cvzmw876rzyv7i960-libgit2-1.1.0/lib/libgit2.so
#3 0x00007fffeb146fe7 in git_path_prettify () from
/gnu/store/jil14glx1j7mrj4cvzmw876rzyv7i960-libgit2-1.1.0/lib/libgit2.so
#4 0x00007fffeb15b3ad in find_repo () from
/gnu/store/jil14glx1j7mrj4cvzmw876rzyv7i960-libgit2-1.1.0/lib/libgit2.so
#5 0x00007fffeb15c28b in git_repository_discover () from
/gnu/store/jil14glx1j7mrj4cvzmw876rzyv7i960-libgit2-1.1.0/lib/libgit2.so
#6 0x00007ffff7c1266d in ffi_call_unix64 () from
/gnu/store/bw15z9kh9c65ycc2vbhl2izwfwfva7p1-libffi-3.3/lib/libffi.so.7
#7 0x00007ffff7c10ac0 in ffi_call_int () from
/gnu/store/bw15z9kh9c65ycc2vbhl2izwfwfva7p1-libffi-3.3/lib/libffi.so.7
#8 0x00007ffff7edefbe in scm_i_foreign_call () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#9 0x00007ffff7f4d904 in foreign_call () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#10 0x00007ffff7f54118 in vm_regular_engine () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#11 0x00007ffff7f555b5 in scm_call_n () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#12 0x00007ffff7ed2d27 in scm_primitive_eval () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#13 0x00007ffff7ed2d83 in scm_eval () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#14 0x00007ffff7f2b830 in scm_shell () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#15 0x00007ffff7eea73d in invoke_main_func () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#16 0x00007ffff7eccb0a in c_body () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#17 0x00007ffff7f54149 in vm_regular_engine () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#18 0x00007ffff7f555b5 in scm_call_n () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#19 0x00007ffff7ed1bba in scm_call_2 () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#20 0x00007ffff7ed33ba in scm_c_with_exception_handler () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#21 0x00007ffff7f4ac3d in scm_c_catch () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#22 0x00007ffff7ecd0b3 in scm_i_with_continuation_barrier () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#23 0x00007ffff7ecd145 in scm_c_with_continuation_barrier () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#24 0x00007ffff7f496df in with_guile () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#25 0x00007ffff7c56a68 in GC_call_with_stack_base () from
/gnu/store/iycnpxxrg8m9wf9w58d6zvp9sdby6m9d-libgc-7.6.12/lib/libgc.so.1
#26 0x00007ffff7f499f8 in scm_with_guile () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#27 0x00007ffff7eea8b2 in scm_boot_guile () from
/gnu/store/q8brh7j5mwy0hbrly6hjb1m3wwndxqc8-guile-3.0.5/lib/libguile-3.0.so.1
#28 0x000000000040119a in main ()
Attachment: file
L
L
Ludovic Courtès wrote on 16 Apr 2021 17:42
control message for bug #47797
(address . control@debbugs.gnu.org)
87im4m44o3.fsf@gnu.org
severity 47797 important
quit
L
L
Ludovic Courtès wrote on 16 Apr 2021 17:42
control message for bug #47297
(address . control@debbugs.gnu.org)
87h7k644nt.fsf@gnu.org
block 47297 by 47797
quit
L
L
Ludovic Courtès wrote on 16 Apr 2021 23:32
Re: bug#47797: Segmentation fault when calling 'git-predicate' in a package file
(name . Ingo Ruhnke)(address . grumbel@gmail.com)(address . 47797-done@debbugs.gnu.org)
871rb93oh1.fsf@gnu.org
Hi Ingo,

Ingo Ruhnke <grumbel@gmail.com> skribis:

Toggle quote (22 lines)
> Calling git-predicate from a simple package file causes guix to segfault.
> Bisect traced it down to this commit:
>
>
> commit c1940fde43c7aca37d67589cc5cb248086d17d56
> Author: Ludovic Courtès <ludo@gnu.org>
> Date: Fri Mar 19 11:51:20 2021 +0100
>
> git-download: Autoload Guile-Git.
>
> * guix/git-download.scm: Autoload (git ...) modules.
>
>
> Steps to reproduce the issue:
>
> $ cat mypkg.scm
> (use-modules (guix git-download))
> (git-predicate "/tmp")
>
> $ guix package -f mypkg.scm
> Segmentation fault (core dumped)

Fixed in 5b35c9adc899749a0bd96a0e6d2c3bbf88e38963.

Thank you for the perfect reproducer and bisect!

Ludo’.
Closed
?