unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Cc: 48855@debbugs.gnu.org
Subject: bug#48855: Segfault while attempting to use --with-git-url
Date: Sat, 26 Jun 2021 10:52:44 +0200	[thread overview]
Message-ID: <87bl7t2ejn.fsf@gnu.org> (raw)
In-Reply-To: <878s3nkha9.fsf@gmail.com> (Maxim Cournoyer's message of "Sat, 05 Jun 2021 19:45:02 -0400")

[-- Attachment #1: Type: text/plain, Size: 918 bytes --]

Hello,

Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

> $ ./pre-inst-env guix build ppsspp \
>   --with-git-url=ppsspp=https://github.com/hrydgard/ppsspp
>
> I get either
>
> updating submodule 'ext/SPIRV-Cross'...
> indexing objects  91% [##########################################################################################################################################################################                 ]Segmentation fault
>
>
> or
>
> updating checkout of 'https://github.com/hrydgard/ppsspp'...
> updating submodule 'dx9sdk'...
> updating submodule 'ext/SPIRV-Cross'...
> updating submodule 'ext/armips'...
> receiving objects  73% [########################################################################################################################################                                                  ]Illegal instruction

For the record, a possible workaround is:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 580 bytes --]

diff --git a/guix/git.scm b/guix/git.scm
index 9c6f326c36..a180d12acc 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -291,7 +291,8 @@ dynamic extent of EXP."
                 (format log-port (G_ "updating submodule '~a'...~%")
                         name)
                 (submodule-update submodule
-                                  #:fetch-options fetch-options)
+                                  #:fetch-options
+                                  (make-default-fetch-options))
 
                 ;; Recurse in SUBMODULE.
                 (let ((directory (string-append

[-- Attachment #3: Type: text/plain, Size: 2744 bytes --]


This has to do with fetch options/progress callbacks being reclaimed too
early.  The backtrace upon segfault looks like this:

--8<---------------cut here---------------start------------->8---
(gdb) bt
#0  0x00007f83dc798a3e in get_callee_vcode (thread=thread@entry=0x7f83dbe2fd80) at vm.c:1499
#1  0x00007f83dc7a08a4 in scm_call_n (
    proc=proc@entry=<error reading variable: ERROR: Cannot access memory at address 0xe0>0xe0, 
    argv=argv@entry=0x7ffe6426d200, nargs=2) at vm.c:1606
#2  0x00007f83dc729fcc in invoke_closure (cif=0x7f83cbbfc580, ret=0x7ffe6426d420, args=0x7ffe6426d270, data=0xe0)
    at foreign.c:1100
#3  0x00007f83dc463ed1 in ffi_closure_unix64_inner ()
   from /gnu/store/bw15z9kh9c65ycc2vbhl2izwfwfva7p1-libffi-3.3/lib/libffi.so.7
#4  0x00007f83dc464800 in ffi_closure_unix64 ()
   from /gnu/store/bw15z9kh9c65ycc2vbhl2izwfwfva7p1-libffi-3.3/lib/libffi.so.7
#5  0x00007f83c6e452a1 in do_progress_callback (stats=stats@entry=0xd843c0, idx=<optimized out>, idx=<optimized out>)
    at /tmp/guix-build-libgit2-1.1.0.drv-0/libgit2-1.1.0/src/indexer.c:562
#6  0x00007f83c6e457cb in git_indexer_append (idx=0xdc3930, data=<optimized out>, size=<optimized out>, 
    stats=0xd843c0) at /tmp/guix-build-libgit2-1.1.0.drv-0/libgit2-1.1.0/src/indexer.c:809
#7  0x00007f83c6e9c6df in git_smart__download_pack (transport=0xda08a0, repo=<optimized out>, stats=0xd843c0, 
    progress_cb=0x7f83d8da50b8, progress_payload=<optimized out>)
    at /tmp/guix-build-libgit2-1.1.0.drv-0/libgit2-1.1.0/src/transports/smart_protocol.c:582
#8  0x00007f83c6e7a15b in git_remote_download (remote=remote@entry=0xd842f0, refspecs=refspecs@entry=0x0, 
    opts=opts@entry=0x7ffe6426d808) at /tmp/guix-build-libgit2-1.1.0.drv-0/libgit2-1.1.0/src/remote.c:989
#9  0x00007f83c6e7ae0e in git_remote_fetch (remote=0xd842f0, refspecs=refspecs@entry=0x0, 
    opts=opts@entry=0x7ffe6426d808, reflog_message=reflog_message@entry=0x0)
    at /tmp/guix-build-libgit2-1.1.0.drv-0/libgit2-1.1.0/src/remote.c:1025
#10 0x00007f83c6e909d9 in git_submodule_update (sm=0xd81360, init=1, _update_options=<optimized out>)
    at /tmp/guix-build-libgit2-1.1.0.drv-0/libgit2-1.1.0/src/submodule.c:1352
#11 0x00007f83dc46466d in ffi_call_unix64 ()
   from /gnu/store/bw15z9kh9c65ycc2vbhl2izwfwfva7p1-libffi-3.3/lib/libffi.so.7
#12 0x00007f83dc462ac0 in ffi_call_int () from /gnu/store/bw15z9kh9c65ycc2vbhl2izwfwfva7p1-libffi-3.3/lib/libffi.so.7
#13 0x00007f83dc72a33e in scm_i_foreign_call (cif_scm=<optimized out>, pointer_scm=<optimized out>, 
    errno_ret=errno_ret@entry=0x7ffe6426dc9c, argv=0x7f83ce7d7880) at foreign.c:1073
--8<---------------cut here---------------end--------------->8---

To be continued…

Ludo’.

  reply	other threads:[~2021-06-26  8:53 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-05 23:45 bug#48855: Segfault while attempting to use --with-git-url Maxim Cournoyer
2021-06-26  8:52 ` Ludovic Courtès [this message]
2021-06-30 10:02 ` Ludovic Courtès
2021-06-30 17:32   ` Maxim Cournoyer
2021-07-21 22:04   ` Ludovic Courtès

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=87bl7t2ejn.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=48855@debbugs.gnu.org \
    --cc=maxim.cournoyer@gmail.com \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).