[Gc] OpenBSD

Taylan Ulrich B. taylanbayirli at gmail.com
Sat Jul 21 15:13:54 PDT 2012


Ivan Maidanski <ivmai at mail.ru> writes:

> Hi Taylan,
>
> 1. I've fixed "GC_push_all_stacks: sp not set!" problem
> 2. I don't know how to fix "ABORT in GC_err_printf at-exit" problem in the proper way (simply ignoring log write error is not good, so just use log redirection for now)
>
> Please try these snapshots (fixing 1st problem):
> 1. http://www.ivmaisoft.com/_bin/bdwgc/gc-7_2-hotfix-3-20120721.tar.bz2 (7.2d release candidate)
> 2. http://www.ivmaisoft.com/_bin/bdwgc/gc-7_3alpha3-20120721.tar.bz2 (7.3alpha3 development snapshot)
>
> Regards,
> Ivan

Hi Ivan,

Both snapshots pass all their tests.
That means the GC_err_printf error doesn't happen either.
I didn't do anything special, also tried multiple times in eterm to make
sure it wasn't chance. I'm sure I did everything exactly the same for
each snapshot.

Thanks a lot for the help. I can finally run guile 2.0 on OpenBSD. :)

Regards,
Taylan

>  
> Wed, 18 Jul 2012 19:53:05 +0400 от Ivan Maidanski <ivmai at mail.ru>:
>> Hi Taylan,
>> 
>> Could you please try this feature branch: https://github.com/ivmai/bdwgc/tree/fix-logging-atexit
>> It should fix the mentioned problem with GC_err_printf.
>> If you confirm, I'll put the patch (https://github.com/ivmai/bdwgc/commit/8d44d462c88ee3dc66a194ef6758f24bbf8971cc) to master and release-7.2 branches.
>> 
>> Regards,
>> Ivan
>> 
>> Sun, 15 Jul 2012 17:43:51 +0200 "Taylan Ulrich B." <taylanbayirli at gmail.com>:
>> > On OpenBSD 5.1/i386, gc 7.2c fails the tests gctest and threadleaktest.
>> > 
>> > It seems to be the same issue as:
>> > http://www.hpl.hp.com/hosted/linux/mail-archives/gc/2012-January/004921.html
>> > (Note that it tests 7.2alpha6 on OpenBSD 4.9/x68.)
>> > 
>> > As also seen in the above link, gctest and threadleaktest output:
>> > GC_push_all_stacks: sp not set!
>> > Abort trap (core dumped)
>> > 
>> > Here is the backtrace from gctest.core:
>> > #0  0x06b3b9ad in kill () from /usr/lib/libc.so.64.0
>> > #1  0x06ba6775 in abort () at /usr/src/lib/libc/stdlib/abort.c:68
>> > #2  0x0aa5652f in GC_abort (msg=Variable "msg" is not available.
>> > ) at misc.c:1455
>> > #3  0x0aa5c157 in GC_push_all_stacks () at pthread_stop_world.c:355
>> > #4  0x0aa58047 in GC_default_push_other_roots () at os_dep.c:2574
>> > #5  0x0aa55846 in GC_push_roots (all=1, 
>> >     cold_gc_frame=0x85263d88 "{ц╓\nП\236╓*╟╦╓\nDR╓*╦=&\205\236х╓\n╟╦╓\nXR╓*") at mark_rts.c:780
>> > #6  0x0aa55046 in GC_mark_some (
>> >     cold_gc_frame=0x85263d88 "{ц╓\nП\236╓*╟╦╓\nDR╓*╦=&\205\236х╓\n╟╦╓\nXR╓*") at mark.c:366
>> > #7  0x0aa4c3fd in GC_stopped_mark (stop_func=0xaa4b8b0 <GC_never_stop_func>) at alloc.c:634
>> > #8  0x0aa4c89e in GC_try_to_collect_inner (stop_func=0xaa4b8b0 <GC_never_stop_func>) at alloc.c:457
>> > #9  0x0aa4cadb in GC_collect_or_expand (needed_blocks=1, ignore_off_page=0, retry=0) at alloc.c:1243
>> > #10 0x0aa4d18c in GC_allocobj (gran=170, kind=0) at alloc.c:1330
>> > #11 0x0aa51c9b in GC_generic_malloc_inner (lb=1028, k=0) at malloc.c:121
>> > #12 0x0aa5661b in GC_new_free_list_inner () at misc.c:1485
>> > #13 0x0aa50d4d in GC_init_gcj_malloc (mp_index=0, mp=0x1c003070) at gcj_mlc.c:100
>> > #14 0x1c0028bf in run_one_test () at tests/test.c:1212
>> > #15 0x1c002eab in thr_run_one_test (arg=0x0) at tests/test.c:1688
>> > #16 0x0aa5ac74 in GC_inner_start_routine (sb=0x85263fb0, arg=0x3c038fd8) at pthread_start.c:56
>> > #17 0x0aa5606c in GC_call_with_stack_base (fn=0xaa5ac20 <GC_inner_start_routine>, arg=0x3c038fd8)
>> >     at misc.c:1556
>> > #18 0x0aa5af67 in GC_start_routine (arg=0x3c038fd8) at pthread_support.c:1549
>> > #19 0x093aaa2e in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:242
>> > #20 0x0000002b in ?? ()
>> > #21 0x00000000 in ?? ()
>> > 
>> > And here from threadleaktest.core:
>> > #0  0x092229ad in kill () from /usr/lib/libc.so.64.0
>> > #1  0x0928d775 in abort () at /usr/src/lib/libc/stdlib/abort.c:68
>> > #2  0x0a4e852f in GC_abort (msg=Variable "msg" is not available.
>> > ) at misc.c:1455
>> > #3  0x0a4ee157 in GC_push_all_stacks () at pthread_stop_world.c:355
>> > #4  0x0a4ea047 in GC_default_push_other_roots () at os_dep.c:2574
>> > #5  0x0a4e7846 in GC_push_roots (all=1, 
>> >     cold_gc_frame=0x88e56e88 "{ЦM\nП╬M*╟ьM\nDrM*╦nЕ\210\236ХM\n╟ьM\n") at mark_rts.c:780
>> > #6  0x0a4e7046 in GC_mark_some (cold_gc_frame=0x88e56e88 "{ЦM\nП╬M*╟ьM\nDrM*╦nЕ\210\236ХM\n╟ьM\n")
>> >     at mark.c:366
>> > #7  0x0a4de3fd in GC_stopped_mark (stop_func=0xa4dd8b0 <GC_never_stop_func>) at alloc.c:634
>> > #8  0x0a4de89e in GC_try_to_collect_inner (stop_func=0xa4dd8b0 <GC_never_stop_func>) at alloc.c:457
>> > #9  0x0a4deca0 in GC_try_to_collect_general (stop_func=0xa4dd8b0 <GC_never_stop_func>, force_unmap=0)
>> >     at alloc.c:981
>> > #10 0x0a4ded96 in GC_gcollect () at alloc.c:1007
>> > #11 0x1c000a20 in test (arg=0x0) at tests/thread_leak_test.c:27
>> > #12 0x0a4ecc74 in GC_inner_start_routine (sb=0x88e56fb0, arg=0x3c024fd8) at pthread_start.c:56
>> > #13 0x0a4e806c in GC_call_with_stack_base (fn=0xa4ecc20 <GC_inner_start_routine>, arg=0x3c024fd8)
>> >     at misc.c:1556
>> > #14 0x0a4ecf67 in GC_start_routine (arg=0x3c024fd8) at pthread_support.c:1549
>> > #15 0x08d41a2e in _thread_start () at /usr/src/lib/libpthread/uthread/uthread_create.c:242
>> > #16 0x0000002b in ?? ()
>> > #17 0x00000000 in ?? ()
>> > 
>> > 
>> > In addition to all that, and I doubt this is relevant, I've found that
>> > leaktest will *sometimes* fail, due to GC_err_printf.
>> > It seems to never fail when stdout and stderr are redirected to a file.
>> > In emacs's eterm, which is slow, it seems to always fail.
>> > In plain urxvt, there seems to be a small chance that it will fail.
>> > The generated backtraces differ, except that GC_abort is always called
>> > from the last line of GC_err_printf, via ABORT("write to stderr failed").
>> > 
>> > Here is a sample:
>> > #0  0x0742f9ad in kill () from /usr/lib/libc.so.64.0
>> > #1  0x0749a775 in abort () at /usr/src/lib/libc/stdlib/abort.c:68
>> > #2  0x05d7552f in GC_abort (msg=Variable "msg" is not available.
>> > ) at misc.c:1455
>> > #3  0x05d75842 in GC_err_printf (format=0x25d628d6 "\t\t%s\n") at misc.c:1341
>> > #4  0x05d77782 in GC_print_callers (info=0x3c025f80) at os_dep.c:4710
>> > #5  0x05d6d783 in GC_print_obj (p=0x3c025f78 "") at dbg_mlc.c:385
>> > #6  0x05d6d7be in GC_debug_print_heap_obj_proc (p=0x3c025f78 "") at dbg_mlc.c:392
>> > #7  0x05d782be in GC_print_all_errors () at reclaim.c:91
>> > #8  0x05d6bda7 in GC_gcollect () at alloc.c:1008
>> > #9  0x05d76177 in GC_exit_check () at misc.c:609
>> > #10 0x0748f0c5 in __cxa_finalize (dso=0x0) at /usr/src/lib/libc/stdlib/atexit.c:153
>> > #11 0x074711be in exit (status=0) at /usr/src/lib/libc/stdlib/exit.c:57
>> > #12 0x1c00069f in ___start ()
>> > #13 0x1c000612 in _start ()
>> > 
>> > 
>> > Regards,
>> > Taylan
>> > _______________________________________________
>> > Gc mailing list
>> > Gc at linux.hpl.hp.com
>> > http://www.hpl.hp.com/hosted/linux/mail-archives/gc/
>> > 
>> 



More information about the Gc mailing list