[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