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 Oct 9,  6:35pm, wiz%NetBSD.org@localhost (Thomas Klausner) wrote:
-- Subject: 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?

Ok, 1107 is the function entry point, and my guess is that
LOCAL_MARK_STACK_SIZE is quite large. Try unlimiting stack size.

christos
 
| (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
-- End of excerpt from Thomas Klausner




Home | Main Index | Thread Index | Old Index