Subject: bug#11776: Guile

From: Samuel Thibault <[email-masked]>
Date: Tue, 26 Jun 2012 07:26:45 -0300

Cyril Roelandt, le Tue 26 Jun 2012 03:27:06 +0200, a écrit :
> On 06/25/2012 01:00 PM, Samuel Thibault wrote:
> >Cyril Roelandt, le Mon 25 Jun 2012 03:23:04 +0200, a écrit :
> >>Program received signal SIGILL, Illegal instruction.
> >>0x01413a5c in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3
> >>(gdb) bt
> >
> >Please also post
> >
> >thread apply all bt
> >
> 
> I attached the log.
> 
> Cyril.
> 
> Thread 6 (Thread 29520.6):
> #0  0x01412036 in ?? () from /lib/i386-gnu/libc.so.0.3

This is where SIGILL actually happens (this is the firewall function in
libc, sysdeps/mach/hurd/i386/trampoline.c). Do you have the libc0.3-dbg
package installed? it's odd we don't have debugging signals. Anyway, the
offset seems to be 0x13da000, thus the functions below.

I don't know _hurd_setup_sighandler very much and don't have time to
dive in it, but that's most probably where to look at. Just an idea: is
guile perhaps using SA_ONSTACK? It's not yet supported, we are still
waiting for moving the threadvars into TLS before enabling it.

> #1  0x015bf1a5 in io_read () from /lib/i386-gnu/libhurduser.so.0.3
> #2  0x01418321 in ?? () from /lib/i386-gnu/libc.so.0.3
readfd (nested function)

> #3  0x0141e880 in ?? () from /lib/i386-gnu/libc.so.0.3
_hurd_ctty_input

> #4  0x01417d44 in ?? () from /lib/i386-gnu/libc.so.0.3
_hurd_fd_read

> #5  0x014d75a2 in read () from /lib/i386-gnu/libc.so.0.3
> #6  0x010d21f4 in read_signal_pipe_data (data=data@entry=0x1bff6e4) at scmsigs.c:158
> #7  0x010fa2ac in with_gc_inactive (data=0x1bff6e4, func=0x10d21c0 <read_signal_pipe_data>) at threads.c:249
> #8  scm_without_guile (func=func@entry=0x10d21c0 <read_signal_pipe_data>, data=data@entry=0x1bff6e4) at threads.c:964
> #9  0x010d2144 in signal_delivery_thread (data=0x0) at scmsigs.c:178
> #10 0x010fc734 in apply_catch_closure (clo=0x838eef0, args=0x304) at throw.c:146
> #11 0x01109be0 in vm_debug_engine (vm=0x8390fd0, program=0x156f534, argv=0x83920c0, nargs=137948912) at vm-i-system.c:960
> #12 0x0111564a in scm_c_vm_run (vm=0x8390fd0, program=program@entry=0x8143a50, argv=argv@entry=0x1bff9a4, 
>     nargs=nargs@entry=3) at vm.c:567
> #13 0x0107b5cc in scm_call_3 (proc=0x8143a50, arg1=arg1@entry=0x404, arg2=arg2@entry=0x838eef0, arg3=arg3@entry=0x838eee0)
>     at eval.c:500
> #14 0x010fcb08 in scm_catch (key=key@entry=0x404, thunk=thunk@entry=0x838eef0, handler=handler@entry=0x838eee0)
>     at throw.c:73
> #15 0x010fcc1c in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=thunk@entry=0x838eef0, 
>     handler=handler@entry=0x838eee0, pre_unwind_handler=0x904) at throw.c:81
> #16 0x010fcd9c in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x10d20f0 <signal_delivery_thread>, 
>     body_data=body_data@entry=0x0, handler=handler@entry=0x10fd220 <scm_handle_by_message>, 
>     handler_data=handler_data@entry=0x113aba0, pre_unwind_handler=pre_unwind_handler@entry=0, 
>     pre_unwind_handler_data=pre_unwind_handler_data@entry=0x0) at throw.c:213
> #17 0x010fcdfb in scm_internal_catch (tag=tag@entry=0x404, body=body@entry=0x10d20f0 <signal_delivery_thread>, 
>     body_data=body_data@entry=0x0, handler=handler@entry=0x10fd220 <scm_handle_by_message>, 
>     handler_data=handler_data@entry=0x113aba0) at throw.c:222
> #18 0x010fa79e in really_spawn (d=0x17ff24c) at threads.c:1091
> #19 0x01071470 in c_body (d=0x1bffe64) at continuations.c:512
> #20 0x010fc734 in apply_catch_closure (clo=0x838efc0, args=0x304) at throw.c:146
> #21 0x01109be0 in vm_debug_engine (vm=0x8390fd0, program=0x156f534, argv=0x8392060, nargs=137949120) at vm-i-system.c:960
> #22 0x0111564a in scm_c_vm_run (vm=0x8390fd0, program=program@entry=0x8143a50, argv=argv@entry=0x1bffd70, 
>     nargs=nargs@entry=4) at vm.c:567
> #23 0x0107b634 in scm_call_4 (proc=0x8143a50, arg1=arg1@entry=0x404, arg2=arg2@entry=0x838efc0, arg3=arg3@entry=0x838efb0, 
>     arg4=arg4@entry=0x838efa0) at eval.c:507
> #24 0x010fcbb6 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=thunk@entry=0x838efc0, 
>     handler=handler@entry=0x838efb0, pre_unwind_handler=0x838efa0) at throw.c:86
> #25 0x010fcd9c in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x1071460 <c_body>, 
>     body_data=body_data@entry=0x1bffe64, handler=handler@entry=0x10718f0 <c_handler>, 
>     handler_data=handler_data@entry=0x1bffe64, pre_unwind_handler=pre_unwind_handler@entry=0x10715b0 <pre_unwind_handler>, 
>     pre_unwind_handler_data=pre_unwind_handler_data@entry=0x80f8be8) at throw.c:213
> #26 0x01071d03 in scm_i_with_continuation_barrier (body=body@entry=0x1071460 <c_body>, body_data=body_data@entry=0x1bffe64, 
>     handler=handler@entry=0x10718f0 <c_handler>, handler_data=handler_data@entry=0x1bffe64, 
>     pre_unwind_handler=pre_unwind_handler@entry=0x10715b0 <pre_unwind_handler>, pre_unwind_handler_data=0x80f8be8)
>     at continuations.c:450
> #27 0x01071de6 in scm_c_with_continuation_barrier (func=0x10fa700 <really_spawn>, data=0x17ff24c) at continuations.c:546
> #28 0x010f9fda in with_guile_trampoline (data=0x1bffef4) at threads.c:884
> #29 with_gc_active (data=0x1bffef4, func=<optimized out>) at threads.c:255
> #30 with_guile_and_parent (base=0x1bffecc, data=0x1bffef4) at threads.c:930
> #31 0x011b421e in GC_call_with_stack_base () from /usr/lib/libgc.so.1
> #32 0x010f95d1 in scm_i_with_guile_and_parent (parent=<optimized out>, data=0x17ff24c, func=0x10fa700 <really_spawn>)
>     at threads.c:945
> #33 spawn_thread (d=0x17ff24c) at threads.c:1103
> #34 0x011b896b in GC_inner_start_routine () from /usr/lib/libgc.so.1
> #35 0x011b421e in GC_call_with_stack_base () from /usr/lib/libgc.so.1
> #36 0x011b8375 in GC_start_routine () from /usr/lib/libgc.so.1
> #37 0x013d0c80 in entry_point () from /lib/i386-gnu/libpthread.so.0.3
> #38 0x00000000 in ?? ()
> 
> Thread 5 (Thread 29520.5):
> #0  0x013f67cc in ?? () from /lib/i386-gnu/libc.so.0.3
> #1  0x013f6fc9 in mach_msg () from /lib/i386-gnu/libc.so.0.3
> #2  0x013f76f9 in mach_msg_server_timeout () from /lib/i386-gnu/libc.so.0.3
> #3  0x013f77cb in mach_msg_server () from /lib/i386-gnu/libc.so.0.3
> #4  0x01407ecf in ?? () from /lib/i386-gnu/libc.so.0.3
> #5  0x013d0c80 in entry_point () from /lib/i386-gnu/libpthread.so.0.3
> #6  0x00000000 in ?? ()
> 
> Thread 4 (Thread 29520.4):
> #0  0x01413a5c in _hurd_intr_rpc_mach_msg () from /lib/i386-gnu/libc.so.0.3
> #1  0x015bb834 in dir_lookup () from /lib/i386-gnu/libhurduser.so.0.3
> #2  0x013fec38 in ?? () from /lib/i386-gnu/libc.so.0.3
> #3  0x013f90bd in _hurd_ports_use () from /lib/i386-gnu/libc.so.0.3
> #4  0x013fee7d in hurd_file_name_lookup () from /lib/i386-gnu/libc.so.0.3
> #5  0x013ff069 in file_name_lookup () from /lib/i386-gnu/libc.so.0.3
> #6  0x014d44ab in __xstat64 () from /lib/i386-gnu/libc.so.0.3
> #7  0x010a2827 in stat (__statbuf=0x17ff250, __path=<optimized out>) at /usr/include/i386-gnu/sys/stat.h:457
> #8  search_path (path=0x813fcc8, filename=filename@entry=0x84deda0, extensions=0x80f02c0, 
>     require_exts=require_exts@entry=0x4, stat_buf=stat_buf@entry=0x17ff250) at load.c:548
> #9  0x010a2bee in scm_primitive_load_path (args=0x84ebcd8) at load.c:863
> #10 0x01109ab4 in vm_debug_engine (vm=0x80f8c50, program=0x15d2808, argv=0x80fb428, nargs=17443584) at vm-i-system.c:892
> #11 0x0111564a in scm_c_vm_run (vm=0x80f8c50, program=program@entry=0x813c150, argv=argv@entry=0x17ff5e0, 
>     nargs=nargs@entry=1) at vm.c:567
> #12 0x0107bc37 in scm_primitive_eval (exp=exp@entry=0x8208ae0) at eval.c:685
> #13 0x0107bcb0 in scm_eval (exp=0x8208ae0, module_or_state=module_or_state@entry=0x81786c0) at eval.c:719
> #14 0x010d3333 in scm_shell (argc=1, argv=0x17ffd08) at script.c:441
> #15 0x0109c2ac in invoke_main_func (body_data=0x17ffc50) at init.c:336
> #16 0x01071470 in c_body (d=0x17ffb94) at continuations.c:512
> #17 0x010fc734 in apply_catch_closure (clo=0x81ec670, args=0x304) at throw.c:146
> #18 0x011140da in vm_regular_engine (vm=0x80f8c50, program=0x15d2808, argv=0x81ec670, nargs=4) at vm-i-system.c:960
> #19 0x0111564a in scm_c_vm_run (vm=0x80f8c50, program=program@entry=0x8143a50, argv=argv@entry=0x17ffaa0, 
>     nargs=nargs@entry=4) at vm.c:567
> #20 0x0107b634 in scm_call_4 (proc=0x8143a50, arg1=arg1@entry=0x404, arg2=arg2@entry=0x81ec670, arg3=arg3@entry=0x81ec660, 
>     arg4=arg4@entry=0x81ec650) at eval.c:507
> #21 0x010fcbb6 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=thunk@entry=0x81ec670, 
>     handler=handler@entry=0x81ec660, pre_unwind_handler=0x81ec650) at throw.c:86
> #22 0x010fcd9c in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x1071460 <c_body>, 
>     body_data=body_data@entry=0x17ffb94, handler=handler@entry=0x10718f0 <c_handler>, 
>     handler_data=handler_data@entry=0x17ffb94, pre_unwind_handler=pre_unwind_handler@entry=0x10715b0 <pre_unwind_handler>, 
>     pre_unwind_handler_data=pre_unwind_handler_data@entry=0x80f8be8) at throw.c:213
> #23 0x01071d03 in scm_i_with_continuation_barrier (body=body@entry=0x1071460 <c_body>, body_data=body_data@entry=0x17ffb94, 
>     handler=handler@entry=0x10718f0 <c_handler>, handler_data=handler_data@entry=0x17ffb94, 
>     pre_unwind_handler=pre_unwind_handler@entry=0x10715b0 <pre_unwind_handler>, pre_unwind_handler_data=0x80f8be8)
>     at continuations.c:450
> #24 0x01071de6 in scm_c_with_continuation_barrier (func=0x109c270 <invoke_main_func>, data=0x17ffc50) at continuations.c:546
> #25 0x010f9fda in with_guile_trampoline (data=0x17ffc24) at threads.c:884
> #26 with_gc_active (data=0x17ffc24, func=<optimized out>) at threads.c:255
> #27 with_guile_and_parent (base=0x17ffbfc, data=0x17ffc24) at threads.c:930
> #28 0x011b421e in GC_call_with_stack_base () from /usr/lib/libgc.so.1
> #29 0x010fa1ff in scm_i_with_guile_and_parent (parent=<optimized out>, data=0x17ffc50, func=0x109c270 <invoke_main_func>)
>     at threads.c:945
> #30 scm_with_guile (func=func@entry=0x109c270 <invoke_main_func>, data=data@entry=0x17ffc50) at threads.c:951
> #31 0x0109c435 in scm_boot_guile (argc=argc@entry=1, argv=argv@entry=0x17ffd08, 
>     main_func=main_func@entry=0x8048960 <inner_main>, closure=closure@entry=0x0) at init.c:319
> #32 0x08048875 in main (argc=1, argv=0x17ffd08) at guile.c:71

-- 
Samuel
<s> cool, j'ai un rapport a rendre pour le 31 decembre a minuit...
 -+- #ens-mim - bonne année ! -+-