Package: guile;
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Mon, 20 Jan 2020 16:35:02 UTC
Severity: important
Merged with 36811, 36812, 39241, 39266, 39988
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Ludovic Courtès <ludo <at> gnu.org> Subject: bug#39208: closed (Re: bug#39208: [3.0.0] Segfault while building on ARMv7) Date: Wed, 11 Mar 2020 20:22:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report #39208: [3.0.0] Segfault while building on ARMv7 which was filed against the guile package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 39208 <at> debbugs.gnu.org. -- 39208: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39208 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> Cc: 39208-done <at> debbugs.gnu.org Subject: Re: bug#39208: [3.0.0] Segfault while building on ARMv7 Date: Wed, 11 Mar 2020 21:21:03 +0100Hi, Ludovic Courtès <ludo <at> gnu.org> skribis: > Building 3.0.0 with Guix on ARMv7 reproducibly fails: > > BOOTSTRAP GUILEC language/cps/loop-instrumentation.go > wrote `language/cps/loop-instrumentation.go' > BOOTSTRAP GUILEC language/cps/peel-loops.go > wrote `language/cps/effects-analysis.go' > BOOTSTRAP GUILEC language/cps/prune-top-level-scopes.go > wrote `language/cps/licm.go' > BOOTSTRAP GUILEC language/cps/reify-primitives.go > wrote `language/cps/prune-top-level-scopes.go' > BOOTSTRAP GUILEC language/cps/renumber.go > wrote `language/cps/peel-loops.go' > BOOTSTRAP GUILEC language/cps/rotate-loops.go > wrote `language/cps/reify-primitives.go' > BOOTSTRAP GUILEC language/cps/optimize.go > wrote `language/cps/renumber.go' > BOOTSTRAP GUILEC language/cps/simplify.go > wrote `language/cps/rotate-loops.go' > BOOTSTRAP GUILEC language/cps/self-references.go > wrote `language/cps/optimize.go' > BOOTSTRAP GUILEC language/cps/slot-allocation.go > wrote `language/cps/self-references.go' > BOOTSTRAP GUILEC language/cps/spec.go > wrote `language/cps/simplify.go' > BOOTSTRAP GUILEC language/cps/specialize-primcalls.go > wrote `language/cps/spec.go' > BOOTSTRAP GUILEC language/cps/specialize-numbers.go > /gnu/store/nvkn00kq4x4g5wjjjvjj6rhzs0ihihxl-bash-minimal-5.0.7/bin/bash: line 6: 23019 Segmentation fault (core dumped) GUILE_AUTO_COMPILE=0 ../meta/build-env guild compile --target="arm-unknown-linux-gnueabihf" -O1 -Oresolve-primitives -L "/tmp/guix-build-guile-next-3.0.0.drv-0/guile-3.0.0/module" -L "/tmp/guix-build-guile-next-3.0.0.drv-0/guile-3.0.0/guile-readline" -o "language/cps/specialize-primcalls.go" "../module/language/cps/specialize-primcalls.scm" > make[2]: *** [Makefile:1931: language/cps/specialize-primcalls.go] Error 139 > make[2]: *** Waiting for unfinished jobs.... > wrote `language/cps/slot-allocation.go' > wrote `language/cps/specialize-numbers.go' > make[2]: Leaving directory '/tmp/guix-build-guile-next-3.0.0.drv-0/guile-3.0.0/bootstrap' > make[1]: *** [Makefile:1849: all-recursive] Error 1 This also is fixed by commit 7c17655cd3d859bf0c5a86d9782a7788205fc05a (<https://issues.guix.gnu.org/issue/39266>). \o/ Ludo’.
[Message part 3 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org> To: bug-Guile <at> gnu.org Subject: [3.0.0] Segfault while building on ARMv7 Date: Mon, 20 Jan 2020 17:33:48 +0100Hello, Building 3.0.0 with Guix on ARMv7 reproducibly fails: --8<---------------cut here---------------start------------->8--- BOOTSTRAP GUILEC language/cps/loop-instrumentation.go wrote `language/cps/loop-instrumentation.go' BOOTSTRAP GUILEC language/cps/peel-loops.go wrote `language/cps/effects-analysis.go' BOOTSTRAP GUILEC language/cps/prune-top-level-scopes.go wrote `language/cps/licm.go' BOOTSTRAP GUILEC language/cps/reify-primitives.go wrote `language/cps/prune-top-level-scopes.go' BOOTSTRAP GUILEC language/cps/renumber.go wrote `language/cps/peel-loops.go' BOOTSTRAP GUILEC language/cps/rotate-loops.go wrote `language/cps/reify-primitives.go' BOOTSTRAP GUILEC language/cps/optimize.go wrote `language/cps/renumber.go' BOOTSTRAP GUILEC language/cps/simplify.go wrote `language/cps/rotate-loops.go' BOOTSTRAP GUILEC language/cps/self-references.go wrote `language/cps/optimize.go' BOOTSTRAP GUILEC language/cps/slot-allocation.go wrote `language/cps/self-references.go' BOOTSTRAP GUILEC language/cps/spec.go wrote `language/cps/simplify.go' BOOTSTRAP GUILEC language/cps/specialize-primcalls.go wrote `language/cps/spec.go' BOOTSTRAP GUILEC language/cps/specialize-numbers.go /gnu/store/nvkn00kq4x4g5wjjjvjj6rhzs0ihihxl-bash-minimal-5.0.7/bin/bash: line 6: 23019 Segmentation fault (core dumped) GUILE_AUTO_COMPILE=0 ../meta/build-env guild compile --target="arm-unknown-linux-gnueabihf" -O1 -Oresolve-primitives -L "/tmp/guix-build-guile-next-3.0.0.drv-0/guile-3.0.0/module" -L "/tmp/guix-build-guile-next-3.0.0.drv-0/guile-3.0.0/guile-readline" -o "language/cps/specialize-primcalls.go" "../module/language/cps/specialize-primcalls.scm" make[2]: *** [Makefile:1931: language/cps/specialize-primcalls.go] Error 139 make[2]: *** Waiting for unfinished jobs.... wrote `language/cps/slot-allocation.go' wrote `language/cps/specialize-numbers.go' make[2]: Leaving directory '/tmp/guix-build-guile-next-3.0.0.drv-0/guile-3.0.0/bootstrap' make[1]: *** [Makefile:1849: all-recursive] Error 1 --8<---------------cut here---------------end--------------->8--- It seems to always happen while building ‘specialize-primcalls.go’. (See <https://ci.guix.gnu.org/log/8b8c0hxvm9qa5kff168vdr3943cc2s61-guile-next-3.0.0>.) The backtrace is unfortunately not all that readable: --8<---------------cut here---------------start------------->8--- Program terminated with signal SIGSEGV, Segmentation fault. #0 0xf5c67b74 in ?? () [Current thread is 1 (Thread 0xf7fe8010 (LWP 23019))] (gdb) bt #0 0xf5c67b74 in ?? () #1 0xf7f3ffcc in scm_jit_enter_mcode (thread=0xdedc20, mcode=0xf5c67a00 " 8\r\032(-@\360c\203%i\250B\300\362_\203\240`\245m") at jit.c:5725 #2 0xf7093a40 in ?? () Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) info threads Id Target Id Frame * 1 Thread 0xf7fe8010 (LWP 23019) 0xf5c67b74 in ?? () 2 Thread 0xf7894460 (LWP 23042) 0xf7e8f034 in __libc_do_syscall () from /gnu/store/n7c20pjm6q1xq1gqjqzzys1yk9fy7n1k-glibc-2.29/lib/libpthread.so.0 3 Thread 0xf69a5460 (LWP 23045) 0xf7e8f034 in __libc_do_syscall () from /gnu/store/n7c20pjm6q1xq1gqjqzzys1yk9fy7n1k-glibc-2.29/lib/libpthread.so.0 (gdb) frame 0 #0 0xf5c67b74 in ?? () (gdb) disassemble 0xf5c67a00,+500 Dump of assembler code from 0xf5c67a00 to 0xf5c67bf4: 0xf5c67a00: subs r0, #32 0xf5c67a02: subs r5, r1, r0 0xf5c67a04: cmp r5, #40 ; 0x28 0xf5c67a06: bne.w 0xf5c680d0 0xf5c67a0a: ldr r5, [r4, #16] 0xf5c67a0c: cmp r0, r5 0xf5c67a0e: blt.w 0xf5c680d0 0xf5c67a12: str r0, [r4, #8] 0xf5c67a14: ldr r5, [r4, #88] ; 0x58 0xf5c67a16: cmp r5, #0 0xf5c67a18: beq.w 0xf5c68102 0xf5c67a1c: ldrt r6, [r5] 0xf5c67a20: str r6, [r4, #88] ; 0x58 0xf5c67a22: str r5, [r0, #24] 0xf5c67a24: movw r5, #1293 ; 0x50d 0xf5c67a28: movs r6, #0 0xf5c67a2a: str r5, [r0, #16] 0xf5c67a2c: str r6, [r0, #20] 0xf5c67a2e: ldr r5, [r0, #24] 0xf5c67a30: ldr r6, [r0, #16] 0xf5c67a32: str r6, [r5, #0] 0xf5c67a34: ldr r5, [r0, #32] 0xf5c67a36: ldr r5, [r5, #4] 0xf5c67a38: str r5, [r0, #16] […] 0xf5c67b5e: cmp r5, #0 0xf5c67b60: ble.w 0xf5c67fce 0xf5c67b64: ldr r5, [r0, #32] 0xf5c67b66: ldr r5, [r5, #20] 0xf5c67b68: str r5, [r0, #16] 0xf5c67b6a: ldr r5, [r0, #16] 0xf5c67b6c: ldr r5, [r5, #4] 0xf5c67b6e: str r5, [r0, #16] 0xf5c67b70: mov.w r12, #0 => 0xf5c67b74: ldrt r5, [r12] 0xf5c67b78: str r5, [r0, #8] 0xf5c67b7a: ldr r5, [r0, #8] 0xf5c67b7c: ldr r6, [r0, #16] 0xf5c67b7e: cmp r5, r6 0xf5c67b80: bne.w 0xf5c67f80 […] (gdb) info registers r0 0xf7093a20 4144577056 r1 0xf7093a48 4144577096 r2 0x0 0 r3 0xf7a24001 4154605569 r4 0x74e00 478720 r5 0xdedc20 14605344 r6 0x0 0 r7 0xf5c67a00 4123425280 r8 0x0 0 r9 0x0 0 r10 0xf7fc4bdc 4160506844 r11 0xf7fb5000 4160442368 r12 0x0 0 sp 0xfffedc50 0xfffedc50 lr 0xf7f3ffcd -135004211 pc 0xf5c67b74 0xf5c67b74 cpsr 0x200f0030 537854000 fpscr 0x60000000 1610612736 (gdb) frame 1 #1 0xf7f3ffcc in scm_jit_enter_mcode (thread=0xdedc20, mcode=0xf5c67a00 " 8\r\032(-@\360c\203%i\250B\300\362_\203\240`\245m") at jit.c:5725 5725 enter_mcode (thread, mcode); (gdb) info locals No locals. (gdb) p *thread $2 = {next_thread = 0x5, vm = {ip = 0xdecd50, sp = 0x324602ae, fp = 0xdebc50, stack_limit = 0x30d, compare_result = 72 'H', apply_hook_enabled = 130 '\202', return_hook_enabled = 82 'R', next_hook_enabled = 1 '\001', abort_hook_enabled = 192 '\300', disable_mcode = 159 '\237', engine = 166 '\246', unused = 1 '\001', stack_size = 15218, stack_bottom = 0x20d, apply_hook = 0x1528240, return_hook = 0x1a69fc0, next_hook = 0x0, abort_hook = 0x5, stack_top = 0xdecd68, overflow_handler_stack = 0x28f45b3e, registers = 0xdebc58, mra_after_abort = 0x20045 "", trace_level = -140048256}, pending_asyncs = 0x116ab78, block_asyncs = 22184512, freelists = {0x20045, 0xf7a707ec, 0x1162bf8, 0x1528248, 0x5, 0x248360, 0x30999e00, 0xdebc60, 0x20d, 0x1528250, 0x1a69fc0, 0x0, 0x20045, 0xf7a70880, 0x1167440, 0x1528250, 0x5, 0xdecd80, 0x181aface, 0xdebc68, 0x20d, 0x1528258, 0x1a69fc0, 0x0, 0x20045, 0xf7a70880, 0x1167460, 0x1528258, 0x5, 0x248370, 0x91c2f1f, 0xdebc70}, pointerless_freelists = {0x30d, 0x7f1720, 0x1a69fc0, 0x1496, 0x30d, 0xdedd50, 0x96, 0x16, 0x5, 0x789740, 0x3275b29e, 0xdebc78, 0x30d, 0xdedd50, 0x16, 0x3fffffe, 0x30d, 0xdedd50, 0x96, 0x3fe, 0x5, 0xdecd98, 0x3afba8fc, 0xdebc80, 0x30d, 0x7f1720, 0x96, 0x16, 0x20d, 0x1528260, 0x1a69fc0, 0x0}, handle = 0x5, pthread = 14601648, result = 0x38a97220, exited = 14597256, guile_mode = 131141, needs_unregister = -140048256, wake = 0x1162128, sleep_cond = {__data = {{__wseq = 95281925316411917, __wseq32 = {__low = 525, __high = 22184552}}, {__g1_start = 27697088, __g1_start32 = {__low = 27697088, __high = 0}}, __g_refs = {5, 7903072}, __g_size = {67881032, 14597264}, __g1_orig_size = 131141, __wrefs = 4154919040, __g_signals = { 18228776, 22184552}}, __size = "\r\002\000\000h\202R\001\300\237\246\001\000\000\000\000\005\000\000\000`\227x\000H\310\v\004\220\274\336\000E\000\002\000\200\b\247\367(&\026\001h\202R\001", __align = 95281925316411917}, sleep_pipe = {525, 22184560}, dynamic_state = 0xa, dynstack = {base = 0x0, top = 0x5, limit = 0x789780}, continuation_root = 0x2db7da0c, continuation_base = 0xdebc98, base = 0x20d, jit_state = 0xdede20} --8<---------------cut here---------------end--------------->8--- Unfortunately I’m unable to reproduce the bug outside Guix’s build environment, even with ASLR disabled (what guix-daemon does). I wonder if that could be the same issue as <https://issues.guix.gnu.org/issue/39118>. I’ll happily take suggestions as to what debug info would be useful and what I could bisect! Ludo’.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.