Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: comms/asterisk18 build failure on current/amd64



On Sun, Oct 09, 2011 at 12:29:52PM -0400, Christos Zoulas wrote:
> On Oct 9,  6:19pm, wiz%NetBSD.org@localhost (Thomas Klausner) wrote:
> -- Subject: Re: comms/asterisk18 build failure on current/amd64
> 
> | (gdb) thread 8
> | [Switching to thread 8 (process 134369)]#0  GC_help_marker (my_mark_no=0) 
> at mark.c:1107
> | 1107    {
> | (gdb) bt
> | #0  GC_help_marker (my_mark_no=0) at mark.c:1107
> | #1  0x00000000005bde93 in GC_mark_thread (id=<value optimized out>) at 
> pthread_support.c:552
> | #2  0x00007f7ff7409cd5 in pthread__create_tramp (cookie=0x7f7ff6800000) at 
> /archive/cvs/src/lib/libpthread/pthread.c:643
> | #3  0x00007f7ff7076350 in ___lwp_park50 () from /usr/lib/libc.so.12
> | Cannot access memory at address 0x7f7ff6c00000
> 
> So this is what died... Can you list mark.c around those lines?

(gdb) thread 8
[Switching to thread 8 (process 134369)]#0  GC_help_marker (my_mark_no=0) at 
mark.c:1107
1107    {
(gdb) l
1102
1103
1104    /* Try to help out the marker, if it's running.         */
1105    /* We do not hold the GC lock, but the requestor does.  */
1106    void GC_help_marker(word my_mark_no)
1107    {
1108        mse local_mark_stack[LOCAL_MARK_STACK_SIZE];
1109        unsigned my_id;
1110        mse * my_first_nonempty;
1111
(gdb) 
1112        if (!GC_parallel) return;
1113        GC_acquire_mark_lock();
1114        while (GC_mark_no < my_mark_no
1115               || !GC_help_wanted && GC_mark_no == my_mark_no) {
1116          GC_wait_marker();
1117        }
1118        my_id = GC_helper_count;
1119        if (GC_mark_no != my_mark_no || my_id >= GC_markers) {
1120          /* Second test is useful only if original threads can also        
*/
1121          /* act as helpers.  Under Linux they can't.                       
*/
(gdb) 
1122          GC_release_mark_lock();
1123          return;
1124        }
1125        GC_helper_count = my_id + 1;
1126        GC_release_mark_lock();
1127        GC_mark_local(local_mark_stack, my_id);
1128        /* GC_mark_local decrements GC_helper_count. */
1129    }
1130
1131    #endif /* PARALLEL_MARK */

 Thomas


Home | Main Index | Thread Index | Old Index