[Mono-bugs] [Bug 433233] New: mono freez with all threads waiting on pthread_mutex_lock

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Oct 7 16:33:15 EDT 2008


https://bugzilla.novell.com/show_bug.cgi?id=433233


           Summary: mono freez with all threads waiting on
                    pthread_mutex_lock
           Product: Mono: Runtime
           Version: 1.9
          Platform: x86-64
        OS/Version: RHEL 5
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: io-layer
        AssignedTo: dick at novell.com
        ReportedBy: basheer.islam at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Community User


I am running mono 1.9 on Red Hat Enterprise Linux as shown below
cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5 (Tikanga)

My mono version information is as follows

[basheeronlinuxcluster at drmsrhc2-8 ~]$ mono --version
Mono JIT compiler version 1.9 (tarball)
Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com
        TLS:           __thread
        GC:            Included Boehm (with typed GC)
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none

In my application I occasionally see mono runtime hanging/freezing with all the
threads waiting on  pthread_mutex_lock. I have further looked into the
"GC_allocate_ml" as shown below

(gdb) p GC_allocate_ml
$6 = {__data = {__lock = 2, __count = 0, __owner = 29764, __nusers = 1, __kind
= 0,
    __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
  __size = "\002\000\000\000\000\000\000\000Dt\000\000\001", '\0' <repeats 26
times>,
  __align = 2}
(gdb) ptype  GC_allocate_ml
type = union {
    struct __pthread_mutex_s __data;
    char __size[40];
    long int __align;
}
it clearly shows the lock is owned by thread 29764 but the same thread is not
visible from the gdb as shown below. The proc directory does show the thread
owning the lock as one of the threads in process as shown below.

[basheeronlinuxcluster at drmsrhc2-8 mono-1.9]$ ls -l /proc/29758/task
total 0
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29758
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29759
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29760
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29761
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29762
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29763
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29764
[basheeronlinuxcluster at drmsrhc2-8 mono-1.9]$

Is anybody else seeing a similar problem ?
Is there fix for this ?
Is there any work around ?
Is there a compilation flag to force a different implementation on
pthread_mutex_lock ?

If you look at the top output it shows mono using 100% of the cpu.

Below is gdb output

Regards

Basheer

[basheeronlinuxcluster at drmsrhc2-8 src]$ gdb mono 29758
GNU gdb Red Hat Linux (6.5-16.el5rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu"...Using host libthread_db
library "/lib64/libthread_db.so.1".

Attaching to program: /usr/local/bin/mono, process 29758
Reading symbols from /lib64/libgthread-2.0.so.0...done.
Loaded symbols for /lib64/libgthread-2.0.so.0
Reading symbols from /lib64/libglib-2.0.so.0...done.
Loaded symbols for /lib64/libglib-2.0.so.0
Reading symbols from /lib64/libdl.so.2...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /lib64/libpthread.so.0...done.
[Thread debugging using libthread_db enabled]
[New Thread 46912496272992 (LWP 29758)]
[New Thread 1083734336 (LWP 29763)]
[New Thread 1081239872 (LWP 29762)]
[New Thread 1079138624 (LWP 29761)]
[New Thread 1075988800 (LWP 29760)]
[New Thread 1073887552 (LWP 29759)]
Loaded symbols for /lib64/libpthread.so.0
Reading symbols from /lib64/libm.so.6...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libc.so.6...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/librt.so.1...done.
Loaded symbols for /lib64/librt.so.1
Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib64/libnss_files.so.2...done.
Loaded symbols for /lib64/libnss_files.so.2
Reading symbols from /lib64/libgcc_s.so.1...done.
Loaded symbols for /lib64/libgcc_s.so.1
0x00000034be60d401 in __nanosleep_nocancel () from /lib64/libpthread.so.0
(gdb)
(gdb) t a a bt

Thread 6 (Thread 1073887552 (LWP 29759)):
#0  0x00000034be60d401 in __nanosleep_nocancel () from /lib64/libpthread.so.0
#1  0x00000000004bcaaf in collection_thread (unused=<value optimized out>)
    at collection.c:34
#2  0x00000034be6061b5 in start_thread () from /lib64/libpthread.so.0
#3  0x00000034bdacd39d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 5 (Thread 1075988800 (LWP 29760)):
#0  0x00000034be60a376 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x00000000004c8645 in timedwait_signal_poll_cond (cond=0x2aaaae6d5268,
    mutex=0x2aaaae6d5240, timeout=0xf, alertable=-1) at handles.c:1443
#2  0x00000000004cabdd in _wapi_handle_timedwait_signal_handle (
    handle=<value optimized out>, timeout=0x0, alertable=-1368567232) at
handles.c:1523
#3  0x00000000004cb6db in WaitForSingleObjectEx (handle=0x404,
timeout=4294967295,
    alertable=0) at wait.c:200
#4  0x0000000000470d91 in finalizer_thread (unused=<value optimized out>) at
gc.c:894
#5  0x00000000004ba06c in start_wrapper (data=<value optimized out>) at
threads.c:589
#6  0x00000000004d0ac3 in thread_start_routine (args=0x2aaaae807f70) at
threads.c:282
#7  0x00000000004e4782 in GC_start_routine (arg=<value optimized out>)
    at pthread_support.c:1369
#8  0x00000034be6061b5 in start_thread () from /lib64/libpthread.so.0
#9  0x00000034bdacd39d in clone () from /lib64/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 4 (Thread 1079138624 (LWP 29761)):
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004e52ca in GC_malloc (lb=56) at malloc.c:294
#4  0x0000000000460071 in mono_object_new_alloc_specific
(vtable=0x2aaab0089c50)
    at object.c:3304
#5  0x0000000000460208 in mono_object_new_specific (vtable=0x2aaab0089c50) at
object.c:3388
#6  0x0000000040001110 in ?? ()
#7  0x0000000000cb8191 in ?? ()
#8  0x000000004031708d in ?? ()
#9  0x0000000040524d38 in ?? ()
#10 0x0000000040011ea5 in ?? ()
#11 0x0000000040524fe8 in ?? ()
#12 0x0000000040524f60 in ?? ()
#13 0x0000000040524cf0 in ?? ()
#14 0x00002aaaaf26aaa0 in ?? ()
#15 0x08cac559219d9ac8 in ?? ()
#16 0x0000000000000000 in ?? ()

Thread 3 (Thread 1081239872 (LWP 29762)):
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004db4e5 in GC_gcj_malloc (lb=56,
ptr_to_struct_containing_descr=0xbdecb0)
    at gcj_mlc.c:153
#4  0x0000000040001110 in ?? ()
#5  0x000000000081c9a1 in ?? ()
#6  0x00000000402fef9d in ?? ()
#7  0x0000000040725d38 in ?? ()
#8  0x0000000040010cb5 in ?? ()
#9  0x0000000040725fe8 in ?? ()
#10 0x0000000040725f60 in ?? ()
#11 0x0000000040725cf0 in ?? ()
#12 0x00002aaaaf2c8f50 in ?? ()
#13 0x08cac55921a318ea in ?? ()
#14 0x0000000000000000 in ?? ()

Thread 2 (Thread 1083734336 (LWP 29763)):
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004e5205 in GC_generic_malloc (lb=4128, k=0) at malloc.c:203
#4  0x00000000004e539b in GC_malloc_atomic (lb=4128) at malloc.c:270
#5  0x0000000000461a73 in mono_array_new_specific (vtable=0x2aaab00632c8,
n=4096)
    at object.c:3321
#6  0x0000000040001110 in ?? ()
#7  0x0000000040986e41 in ?? ()
#8  0x000000004029cba8 in ?? ()
#9  0x00002aaaaf3803c0 in ?? ()
#10 0x0000000040010f78 in ?? ()
#11 0x0000000000001000 in ?? ()
#12 0x0000000040986bb0 in ?? ()
#13 0x0000000040986a30 in ?? ()
#14 0x00002aaaaf41ef70 in ?? ()
#15 0x0000000000000000 in ?? ()

Thread 1 (Thread 46912496272992 (LWP 29758)):
#0  0x00000034be60d401 in __nanosleep_nocancel () from /lib64/libpthread.so.0
#1  0x00000000004cac2b in _wapi_handle_timedwait_signal_handle (
    handle=<value optimized out>, timeout=0x0, alertable=1)
    at ../../mono/io-layer/handles-private.h:315
#2  0x00000000004cb6db in WaitForSingleObjectEx (handle=0x410,
timeout=4294967295,
    alertable=1) at wait.c:200
#3  0x00000000004b8b81 in ves_icall_System_Threading_Thread_Join_internal (
    this=0x2aaaaf32fa10, ms=-1, thread=0x410) at threads.c:1250
#4  0x000000004078422b in ?? ()
#5  0x00007fffffffdf88 in ?? ()
#6  0x00007fffffffdc38 in ?? ()
#7  0x00007fffffffdb40 in ?? ()
#8  0x00000000407840bf in ?? ()
#9  0x00002aaaaf3e6d20 in ?? ()
#10 0x00007fffffffdeb0 in ?? ()
#11 0x00007fffffffdd90 in ?? ()
#12 0x00002aaaaf3eeed0 in ?? ()
#13 0x00002aaaaf379cc0 in ?? ()
#14 0x0000000000000000 in ?? ()
#0  0x00000034be60d401 in __nanosleep_nocancel () from /lib64/libpthread.so.0
(gdb) call mono_locks_dump (0)
[Switching to Thread 46912496272992 (LWP 29758)]
(gdb) info shared
>From                To                  Syms Read   Shared Object Library
0x00000034c7a01600  0x00000034c7a02b38  Yes         /lib64/libgthread-2.0.so.0
0x00000034c420fff0  0x00000034c42568c8  Yes         /lib64/libglib-2.0.so.0
0x00000034bde00e20  0x00000034bde019e8  Yes         /lib64/libdl.so.2
0x00000034be605210  0x00000034be60f3b8  Yes         /lib64/libpthread.so.0
0x00000034be203e80  0x00000034be243ed8  Yes         /lib64/libm.so.6
0x00000034bda1d690  0x00000034bdb01e90  Yes         /lib64/libc.so.6
0x00000034c3202230  0x00000034c3205cb8  Yes         /lib64/librt.so.1
0x00000034bd600a60  0x00000034bd614d04  Yes         /lib64/ld-linux-x86-64.so.2
0x00002aaaae4aa000  0x00002aaaae4b05a8  Yes         /lib64/libnss_files.so.2
0x00000034c2e01e60  0x00000034c2e0af68  Yes         /lib64/libgcc_s.so.1
(gdb) thread 2
[Switching to thread 2 (Thread 1083734336 (LWP 29763))]#0  0x00000034be60c758
in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
(gdb) f 3
#3  0x00000000004e5205 in GC_generic_malloc (lb=4128, k=0) at malloc.c:203
203  LOCK();
(gdb) bt
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004e5205 in GC_generic_malloc (lb=4128, k=0) at malloc.c:203
#4  0x00000000004e539b in GC_malloc_atomic (lb=4128) at malloc.c:270
#5  0x0000000000461a73 in mono_array_new_specific (vtable=0x2aaab00632c8,
n=4096)
    at object.c:3321
#6  0x0000000040001110 in ?? ()
#7  0x0000000040986e41 in ?? ()
#8  0x000000004029cba8 in ?? ()
#9  0x00002aaaaf3803c0 in ?? ()
#10 0x0000000040010f78 in ?? ()
#11 0x0000000000001000 in ?? ()
#12 0x0000000040986bb0 in ?? ()
#13 0x0000000040986a30 in ?? ()
#14 0x00002aaaaf41ef70 in ?? ()
#15 0x0000000000000000 in ?? ()
(gdb) l
198  GC_bool init;
199  lw = ROUNDED_UP_WORDS(lb);
200  n_blocks = OBJ_SZ_TO_BLOCKS(lw);
201  init = GC_obj_kinds[k].ok_init;
202  DISABLE_SIGNALS();
203  LOCK();
204  result = (ptr_t)GC_alloc_large(lw, k, 0);
205  if (0 != result) {
206    if (GC_debugging_started) {
207      BZERO(result, n_blocks * HBLKSIZE);
(gdb) Quit
(gdb) l
208    } else {
209 #           ifdef THREADS
210        /* Clear any memory that might be used for GC descriptors */
211        /* before we release the lock.         */
212          ((word *)result)[0] = 0;
213          ((word *)result)[1] = 0;
214          ((word *)result)[lw-1] = 0;
215          ((word *)result)[lw-2] = 0;
216 #     endif
217    }
(gdb) thread 2
[Switching to thread 2 (Thread 1083734336 (LWP 29763))]#3  0x00000000004e5205
in GC_generic_malloc (lb=4128, k=0) at malloc.c:203
203  LOCK();
(gdb) bt
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004e5205 in GC_generic_malloc (lb=4128, k=0) at malloc.c:203
#4  0x00000000004e539b in GC_malloc_atomic (lb=4128) at malloc.c:270
#5  0x0000000000461a73 in mono_array_new_specific (vtable=0x2aaab00632c8,
n=4096)
    at object.c:3321
#6  0x0000000040001110 in ?? ()
#7  0x0000000040986e41 in ?? ()
#8  0x000000004029cba8 in ?? ()
#9  0x00002aaaaf3803c0 in ?? ()
#10 0x0000000040010f78 in ?? ()
#11 0x0000000000001000 in ?? ()
#12 0x0000000040986bb0 in ?? ()
#13 0x0000000040986a30 in ?? ()
#14 0x00002aaaaf41ef70 in ?? ()
#15 0x0000000000000000 in ?? ()
(gdb) l
198  GC_bool init;
199  lw = ROUNDED_UP_WORDS(lb);
200  n_blocks = OBJ_SZ_TO_BLOCKS(lw);
201  init = GC_obj_kinds[k].ok_init;
202  DISABLE_SIGNALS();
203  LOCK();
204  result = (ptr_t)GC_alloc_large(lw, k, 0);
205  if (0 != result) {
206    if (GC_debugging_started) {
207      BZERO(result, n_blocks * HBLKSIZE);
(gdb) p lw
$1 = 516
(gdb) p lb
$2 = 4128
(gdb) p init
$3 = 0
(gdb) p k
$4 = 0
(gdb) p result
$5 = <value optimized out>
(gdb) f 2
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
(gdb) l
208    } else {
209 #           ifdef THREADS
210        /* Clear any memory that might be used for GC descriptors */
211        /* before we release the lock.         */
212          ((word *)result)[0] = 0;
213          ((word *)result)[1] = 0;
214          ((word *)result)[lw-1] = 0;
215          ((word *)result)[lw-2] = 0;
216 #     endif
217    }
(gdb) bt
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004e5205 in GC_generic_malloc (lb=4128, k=0) at malloc.c:203
#4  0x00000000004e539b in GC_malloc_atomic (lb=4128) at malloc.c:270
#5  0x0000000000461a73 in mono_array_new_specific (vtable=0x2aaab00632c8,
n=4096)
    at object.c:3321
#6  0x0000000040001110 in ?? ()
#7  0x0000000040986e41 in ?? ()
#8  0x000000004029cba8 in ?? ()
#9  0x00002aaaaf3803c0 in ?? ()
#10 0x0000000040010f78 in ?? ()
#11 0x0000000000001000 in ?? ()
#12 0x0000000040986bb0 in ?? ()
#13 0x0000000040986a30 in ?? ()
#14 0x00002aaaaf41ef70 in ?? ()
#15 0x0000000000000000 in ?? ()
(gdb) f 2
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
(gdb) p GC_allocate_ml
$6 = {__data = {__lock = 2, __count = 0, __owner = 29764, __nusers = 1, __kind
= 0,
    __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
  __size = "\002\000\000\000\000\000\000\000Dt\000\000\001", '\0' <repeats 26
times>,
  __align = 2}
(gdb) ptype  GC_allocate_ml
type = union {
    struct __pthread_mutex_s __data;
    char __size[40];
    long int __align;
}
(gdb) thread 3
[Switching to thread 3 (Thread 1081239872 (LWP 29762))]#0  0x00000034be60c758
in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
(gdb) bt
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004db4e5 in GC_gcj_malloc (lb=56,
ptr_to_struct_containing_descr=0xbdecb0)
    at gcj_mlc.c:153
#4  0x0000000040001110 in ?? ()
#5  0x000000000081c9a1 in ?? ()
#6  0x00000000402fef9d in ?? ()
#7  0x0000000040725d38 in ?? ()
#8  0x0000000040010cb5 in ?? ()
#9  0x0000000040725fe8 in ?? ()
#10 0x0000000040725f60 in ?? ()
#11 0x0000000040725cf0 in ?? ()
#12 0x00002aaaaf2c8f50 in ?? ()
#13 0x08cac55921a318ea in ?? ()
#14 0x0000000000000000 in ?? ()
(gdb) f 2
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
(gdb) p GC_allocate_ml
$7 = {__data = {__lock = 2, __count = 0, __owner = 29764, __nusers = 1, __kind
= 0,
    __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
  __size = "\002\000\000\000\000\000\000\000Dt\000\000\001", '\0' <repeats 26
times>,
  __align = 2}
(gdb) thread 2
[Switching to thread 2 (Thread 1083734336 (LWP 29763))]#0  0x00000034be60c758
in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
(gdb) thread 1
[Switching to thread 1 (Thread 46912496272992 (LWP 29758))]#0 
0x00000034be60d401 in __nanosleep_nocancel () from /lib64/libpthread.so.0
(gdb) thread 4
[Switching to thread 4 (Thread 1079138624 (LWP 29761))]#0  0x00000034be60c758
in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
(gdb) thread 5
[Switching to thread 5 (Thread 1075988800 (LWP 29760))]#0  0x00000034be60a376
in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) thread 6
[Switching to thread 6 (Thread 1073887552 (LWP 29759))]#0  0x00000034be60d401
in __nanosleep_nocancel () from /lib64/libpthread.so.0
(gdb) thread 7
Thread ID 7 not known.
(gdb) info threads
* 6 Thread 1073887552 (LWP 29759)  0x00000034be60d401 in __nanosleep_nocancel
()
   from /lib64/libpthread.so.0
  5 Thread 1075988800 (LWP 29760)  0x00000034be60a376 in
pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
  4 Thread 1079138624 (LWP 29761)  0x00000034be60c758 in __lll_mutex_lock_wait
()
   from /lib64/libpthread.so.0
  3 Thread 1081239872 (LWP 29762)  0x00000034be60c758 in __lll_mutex_lock_wait
()
   from /lib64/libpthread.so.0
  2 Thread 1083734336 (LWP 29763)  0x00000034be60c758 in __lll_mutex_lock_wait
()
   from /lib64/libpthread.so.0
  1 Thread 46912496272992 (LWP 29758)  0x00000034be60d401 in
__nanosleep_nocancel ()
   from /lib64/libpthread.so.0
(gdb) p GC_allocate_ml
$8 = {__data = {__lock = 2, __count = 0, __owner = 29764, __nusers = 1, __kind
= 0,
    __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
  __size = "\002\000\000\000\000\000\000\000Dt\000\000\001", '\0' <repeats 26
times>,
  __align = 2}
(gdb) ptype GC_allocate_ml
type = union {
    struct __pthread_mutex_s __data;
    char __size[40];
    long int __align;
}
(gdb) p GC_allocate_ml.__data
$9 = {__lock = 2, __count = 0, __owner = 29764, __nusers = 1, __kind = 0,
__spins = 0,
  __list = {__prev = 0x0, __next = 0x0}}
(gdb) ptype  GC_allocate_ml.__data
type = struct __pthread_mutex_s {
    int __lock;
    unsigned int __count;
    int __owner;
    unsigned int __nusers;
    int __kind;
    int __spins;
    __pthread_list_t __list;
}
(gdb) ptype GC_allocate_ml.__data.__list
type = struct __pthread_internal_list {
    struct __pthread_internal_list *__prev;
    struct __pthread_internal_list *__next;
}
(gdb) ptype GC_allocate_ml.__data.__list->
A syntax error in expression, near `'.
(gdb)     struct __pthread_internal_list->__prev
Undefined command: "struct".  Try "help".
(gdb) ptype GC_allocate_ml.__data.__list->__prev
type = struct __pthread_internal_list {
    struct __pthread_internal_list *__prev;
    struct __pthread_internal_list *__next;
} *
(gdb) p GC_allocate_ml.__data.__list->__prev
$10 = (struct __pthread_internal_list *) 0x0
(gdb) info threads
  6 Thread 1073887552 (LWP 29759)  0x00000034be60d401 in __nanosleep_nocancel
()
   from /lib64/libpthread.so.0
  5 Thread 1075988800 (LWP 29760)  0x00000034be60a376 in
pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
  4 Thread 1079138624 (LWP 29761)  0x00000034be60c758 in __lll_mutex_lock_wait
()
   from /lib64/libpthread.so.0
  3 Thread 1081239872 (LWP 29762)  0x00000034be60c758 in __lll_mutex_lock_wait
()
   from /lib64/libpthread.so.0
  2 Thread 1083734336 (LWP 29763)  0x00000034be60c758 in __lll_mutex_lock_wait
()
   from /lib64/libpthread.so.0
* 1 Thread 46912496272992 (LWP 29758)  0x00000034be60d401 in
__nanosleep_nocancel ()
   from /lib64/libpthread.so.0
(gdb) t a a bt

Thread 6 (Thread 1073887552 (LWP 29759)):
#0  0x00000034be60d401 in __nanosleep_nocancel () from /lib64/libpthread.so.0
#1  0x00000000004bcaaf in collection_thread (unused=<value optimized out>)
    at collection.c:34
#2  0x00000034be6061b5 in start_thread () from /lib64/libpthread.so.0
#3  0x00000034bdacd39d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 5 (Thread 1075988800 (LWP 29760)):
#0  0x00000034be60a376 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x00000000004c8645 in timedwait_signal_poll_cond (cond=0x2aaaae6d5268,
    mutex=0x2aaaae6d5240, timeout=0xf, alertable=-1) at handles.c:1443
#2  0x00000000004cabdd in _wapi_handle_timedwait_signal_handle (
    handle=<value optimized out>, timeout=0x0, alertable=-1368567232) at
handles.c:1523
#3  0x00000000004cb6db in WaitForSingleObjectEx (handle=0x404,
timeout=4294967295,
    alertable=0) at wait.c:200
#4  0x0000000000470d91 in finalizer_thread (unused=<value optimized out>) at
gc.c:894
#5  0x00000000004ba06c in start_wrapper (data=<value optimized out>) at
threads.c:589
#6  0x00000000004d0ac3 in thread_start_routine (args=0x2aaaae807f70) at
threads.c:282
#7  0x00000000004e4782 in GC_start_routine (arg=<value optimized out>)
    at pthread_support.c:1369
#8  0x00000034be6061b5 in start_thread () from /lib64/libpthread.so.0
#9  0x00000034bdacd39d in clone () from /lib64/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 4 (Thread 1079138624 (LWP 29761)):
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004e52ca in GC_malloc (lb=56) at malloc.c:294
#4  0x0000000000460071 in mono_object_new_alloc_specific
(vtable=0x2aaab0089c50)
    at object.c:3304
#5  0x0000000000460208 in mono_object_new_specific (vtable=0x2aaab0089c50) at
object.c:3388
#6  0x0000000040001110 in ?? ()
#7  0x0000000000cb8191 in ?? ()
#8  0x000000004031708d in ?? ()
#9  0x0000000040524d38 in ?? ()
#10 0x0000000040011ea5 in ?? ()
#11 0x0000000040524fe8 in ?? ()
#12 0x0000000040524f60 in ?? ()
#13 0x0000000040524cf0 in ?? ()
#14 0x00002aaaaf26aaa0 in ?? ()
#15 0x08cac559219d9ac8 in ?? ()
#16 0x0000000000000000 in ?? ()

Thread 3 (Thread 1081239872 (LWP 29762)):
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004db4e5 in GC_gcj_malloc (lb=56,
ptr_to_struct_containing_descr=0xbdecb0)
    at gcj_mlc.c:153
#4  0x0000000040001110 in ?? ()
#5  0x000000000081c9a1 in ?? ()
#6  0x00000000402fef9d in ?? ()
#7  0x0000000040725d38 in ?? ()
#8  0x0000000040010cb5 in ?? ()
#9  0x0000000040725fe8 in ?? ()
#10 0x0000000040725f60 in ?? ()
#11 0x0000000040725cf0 in ?? ()
#12 0x00002aaaaf2c8f50 in ?? ()
#13 0x08cac55921a318ea in ?? ()
#14 0x0000000000000000 in ?? ()

Thread 2 (Thread 1083734336 (LWP 29763)):
#0  0x00000034be60c758 in __lll_mutex_lock_wait () from /lib64/libpthread.so.0
#1  0x00000034be6087c4 in _L_mutex_lock_107 () from /lib64/libpthread.so.0
#2  0x00000034be608263 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000004e5205 in GC_generic_malloc (lb=4128, k=0) at malloc.c:203
#4  0x00000000004e539b in GC_malloc_atomic (lb=4128) at malloc.c:270
#5  0x0000000000461a73 in mono_array_new_specific (vtable=0x2aaab00632c8,
n=4096)
    at object.c:3321
#6  0x0000000040001110 in ?? ()
#7  0x0000000040986e41 in ?? ()
#8  0x000000004029cba8 in ?? ()
#9  0x00002aaaaf3803c0 in ?? ()
#10 0x0000000040010f78 in ?? ()
#11 0x0000000000001000 in ?? ()
#12 0x0000000040986bb0 in ?? ()
#13 0x0000000040986a30 in ?? ()
#14 0x00002aaaaf41ef70 in ?? ()
#15 0x0000000000000000 in ?? ()

Thread 1 (Thread 46912496272992 (LWP 29758)):
#0  0x00000034be60d401 in __nanosleep_nocancel () from /lib64/libpthread.so.0
#1  0x00000000004cac2b in _wapi_handle_timedwait_signal_handle (
    handle=<value optimized out>, timeout=0x0, alertable=1)
    at ../../mono/io-layer/handles-private.h:315
#2  0x00000000004cb6db in WaitForSingleObjectEx (handle=0x410,
timeout=4294967295,
    alertable=1) at wait.c:200
#3  0x00000000004b8b81 in ves_icall_System_Threading_Thread_Join_internal (
    this=0x2aaaaf32fa10, ms=-1, thread=0x410) at threads.c:1250
#4  0x000000004078422b in ?? ()
#5  0x00007fffffffdf88 in ?? ()
#6  0x00007fffffffdc38 in ?? ()
#7  0x00007fffffffdb40 in ?? ()
#8  0x00000000407840bf in ?? ()
#9  0x00002aaaaf3e6d20 in ?? ()
#10 0x00007fffffffdeb0 in ?? ()
#11 0x00007fffffffdd90 in ?? ()
#12 0x00002aaaaf3eeed0 in ?? ()
#13 0x00002aaaaf379cc0 in ?? ()
#14 0x0000000000000000 in ?? ()
(gdb) p GC_allocate_ml.__data
$11 = {__lock = 2, __count = 0, __owner = 29764, __nusers = 1, __kind = 0,
__spins = 0,
  __list = {__prev = 0x0, __next = 0x0}}
--------------------------PROC DIRECTORY NFO-------------------------
[basheeronlinuxcluster at drmsrhc2-8 mono-1.9]$ ls -l /proc/29758/task
total 0
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29758
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29759
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29760
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29761
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29762
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29763
dr-xr-xr-x 4 basheeronlinuxcluster basheeronlinuxcluster 0 Aug  5 17:58 29764
[basheeronlinuxcluster at drmsrhc2-8 mono-1.9]$

----------------------------TOP OUTPUT-----------------------------
top - 15:41:22 up 53 days, 15:17,  5 users,  load average: 1.00, 1.00, 1.00
Tasks: 165 total,   1 running, 163 sleeping,   1 stopped,   0 zombie
Cpu(s): 25.3%us,  0.0%sy,  0.0%ni, 74.6%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16437052k total, 10616036k used,  5821016k free,   410304k buffers
Swap:        0k total,        0k used,        0k free,  9482768k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
29758 10077     15   0  179m  25m 9904 T  100  0.2   2894:05 mono
    1 root      15   0 10304  668  552 S    0  0.0   0:01.37 init
    2 root      RT   0     0    0    0 S    0  0.0   0:00.65 migration/0
    3 root      34  19     0    0    0 S    0  0.0   0:00.11 ksoftirqd/0
    4 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0
    5 root      RT   0     0    0    0 S    0  0.0   0:00.32 migration/1
    6 root      34  19     0    0    0 S    0  0.0   0:00.13 ksoftirqd/1
    7 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1
    8 root      RT   0     0    0    0 S    0  0.0   0:00.29 migration/2
    9 root      34  19     0    0    0 S    0  0.0   0:01.28 ksoftirqd/2
   10 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/2
   11 root      RT   0     0    0    0 S    0  0.0   0:00.39 migration/3
   12 root      34  19     0    0    0 S    0  0.0   0:00.04 ksoftirqd/3
   13 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/3
   14 root      10  -5     0    0    0 S    0  0.0   0:00.06 events/0
   15 root      10  -5     0    0    0 S    0  0.0   0:00.01 events/1
   16 root      10  -5     0    0    0 S    0  0.0   0:00.00 events/2
   17 root      10  -5     0    0    0 S    0  0.0   0:00.02 events/3
   18 root      10  -5     0    0    0 S    0  0.0   0:00.00 khelper
  155 root      10  -5     0    0    0 S    0  0.0   0:00.00 kthread
  162 root      10  -5     0    0    0 S    0  0.0   0:00.05 kblockd/0
  163 root      10  -5     0    0    0 S    0  0.0   0:00.05 kblockd/1
  164 root      10  -5     0    0    0 S    0  0.0   0:00.07 kblockd/2
  165 root      10  -5     0    0    0 S    0  0.0   0:00.12 kblockd/3
  166 root      16  -5     0    0    0 S    0  0.0   0:00.00 kacpid
  274 root      16  -5     0    0    0 S    0  0.0   0:00.00 cqueue/0
  275 root      17  -5     0    0    0 S    0  0.0   0:00.00 cqueue/1
  276 root      17  -5     0    0    0 S    0  0.0   0:00.00 cqueue/2
  277 root      17  -5     0    0    0 S    0  0.0   0:00.00 cqueue/3


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list