Closed mschilli87 closed 4 years ago
Having SIGSEGV is unexpected. guix pull
works here:
guix pull
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Building from this channel:
guix https://git.savannah.gnu.org/git/guix.git 868a186
downloading from https://ci.guix.gnu.org/nar/gzip/l1iakyjw5lacjbnynm6z7b31clyh1llx-ghostscript-9.27-doc...
ghostscript-9.27-doc 3.9MiB
...
Computing Guix derivation for 'x86_64-linux'...
...
News for channel 'guix'
Add support to boot from a Btrfs subvolume
`guix pack -RR' introduces a new execution engine
New `--path' option for `guix graph'
GNU C Library upgraded
Guix Cookbook now available as Info
Further reduced binary seed bootstrap
Rottlog service added to `%base-services'
`guile' package now refers to version 3.0
`guix pull' now supports SSH authenticated repositories
Guix now runs on Guile 3.0
Seems to work.
Can you extract a backtrace? Also check if dmesg
complain about OOM crash in case it's a problem in lack of memory.
dmesg only has
[18146.392676] guix[6148]: segfault at c800010009 ip 00007fbb320cf144 sp 00007ffe7b5c8e80 error 4 in libgit2.so.0.28.4[7fbb3203e000+ad000]
There is over 15 GB of memory free on this machine.
This is the backtrace I got:
/usr/lib64/libgit2.so(+0xa6144)[0x7f01a3454144]
/usr/lib64/libhttp_parser.so.2.9(http_parser_execute+0x1dbf)[0x7f01a312e1ef]
/usr/lib64/libgit2.so(+0xa7e72)[0x7f01a3455e72]
/usr/lib64/libgit2.so(+0xa94d1)[0x7f01a34574d1]
/usr/lib64/libgit2.so(+0xab6b0)[0x7f01a34596b0]
/usr/lib64/libgit2.so(+0xa9c3c)[0x7f01a3457c3c]
/usr/lib64/libgit2.so(+0x89069)[0x7f01a3437069]
/usr/lib64/libgit2.so(git_remote_fetch+0xbe)[0x7f01a34389fe]
//usr/lib64/libffi.so.7(+0x6c2d)[0x7f01b57b1c2d]
//usr/lib64/libffi.so.7(+0x61ac)[0x7f01b57b11ac]
/usr/lib64/libguile-2.2.so.1(+0x561e1)[0x7f01b5a3b1e1]
/usr/lib64/libguile-2.2.so.1(+0xc4e31)[0x7f01b5aa9e31]
/usr/lib64/libguile-2.2.so.1(scm_call_n+0x1a0)[0x7f01b5aaf690]
/usr/lib64/libguile-2.2.so.1(scm_primitive_eval+0x27)[0x7f01b5a2f8c7]
/usr/lib64/libguile-2.2.so.1(scm_eval+0x56)[0x7f01b5a2f926]
/usr/lib64/libguile-2.2.so.1(scm_shell+0x46)[0x7f01b5a7cb26]
/usr/lib64/libguile-2.2.so.1(+0x619bd)[0x7f01b5a469bd]
/usr/lib64/libguile-2.2.so.1(+0x4368a)[0x7f01b5a2868a]
/usr/lib64/libguile-2.2.so.1(+0xc4d28)[0x7f01b5aa9d28]
/usr/lib64/libguile-2.2.so.1(scm_call_n+0x1a0)[0x7f01b5aaf690]
/usr/lib64/libguile-2.2.so.1(+0xb8d18)[0x7f01b5a9dd18]
/usr/lib64/libguile-2.2.so.1(+0x43c83)[0x7f01b5a28c83]
/usr/lib64/libguile-2.2.so.1(scm_c_with_continuation_barrier+0x45)[0x7f01b5a28d65]
/usr/lib64/libguile-2.2.so.1(+0xb7786)[0x7f01b5a9c786]
//usr/lib64/libgc.so.1(GC_call_with_stack_base+0x27)[0x7f01b57c7af7]
/usr/lib64/libguile-2.2.so.1(scm_with_guile+0x38)[0x7f01b5a9cb78]
/usr/lib64/libguile-2.2.so.1(scm_boot_guile+0x52)[0x7f01b5a46b82]
/usr/bin/guile(+0x1130)[0x5570f1846130]
/lib64/libc.so.6(__libc_start_main+0xeb)[0x7f01b584fe0b]
/usr/bin/guile(+0x11da)[0x5570f18461da]
Aha, looks like a memory corruption, possibly in guile/libgit/http-parser bindings. What versions of dev-libs/libgit2
/ dev-scheme/guile-git
/ net-libs/http-parser
you have installed?
The following should dump it:
$ emerge --info dev-libs/libgit2 dev-scheme/guile-git net-libs/http-parser
I'll try to reproduce locally and if that fails we might need more detailed backtrace.
dev-libs/libgit2-0.28.4::gentoo was built with the following:
USE="libressl ssh threads -examples -gssapi -test -trace" ABI_X86="(64)"
FEATURES="usersync preserve-libs unmerge-logs distlocks ipc-sandbox binpkg-docompress config-protect-if-modified userpriv sfperms pid-sandbox binpkg-logs unknown-features-warn ebuild-locks sandbox parallel-fetch usersandbox xattr multilib-strict unmerge-orphans assume-digests userfetch merge-sync news strict protect-owned fixlafiles binpkg-dostrip network-sandbox"
dev-scheme/guile-git-0.3.0::gentoo was built with the following:
USE="" ABI_X86="(64)"
net-libs/http-parser-2.9.3::gentoo was built with the following:
USE="-static-libs" ABI_X86="(64) -32 (-x32)"
@trofi: Let me know if there is any additional information I could provide to track this down.
Updating dev-libs/libgit2
from 0.28.4 to 1.0.0-r1 seems to have fixed the issue.
@trofi: Thank you so much for your quick response. :heart:
Ahm thanks for tracking it down! Sorry, my input was not very useful. I hoped to get to SIGSEGV reproduction to understand why it happens (if it's an API change problem or some random bug). Let's then increase lower bound of libgit in guile-git.
I installed guix, started the daemon and all is fine. I can seach and install packages to my profile without root, create containers etc.
However,
guix pull
segfaults right away after printingThis is an issue as a) I won't get updates for packages without updating the guix package using portage (requires root), and b) I can't add any channels to build software non-foss software.
Is there anything special I might have missed that I need to do to get guix pull working on Gentoo or is this a (known) bug/limitation?
Thanks for your help and getting me this far to begin with.