[M3devel] Status of threads for RC4?

Tony Hosking hosking at cs.purdue.edu
Fri Oct 16 00:23:20 CEST 2009


Hmm.  This is very weird.  All the threads are trying to acquire the  
same mutex (the global mutex in p007/src/Main.m3), but none of them is  
actually holding it.  So, why can't one of them get it?  Anyone else  
have any idea what's going on here?

On 15 Oct 2009, at 17:45, Olaf Wagner wrote:

> Quoting Tony Hosking <hosking at cs.purdue.edu>:
>
>> I need to see all the threads:
>>
>> thread apply all bt
>
> Here you are:
>
> bash-3.2$ m3gdb src/p0/p007/I386_OPENBSD/pgm
> GNU gdb plus Modula-3 6.4
> Copyright 2005 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 "i686-openbsd"...
> (m3gdb) r
> Starting program: /home/hudson/workspace/cm3-test-all-pkgs- 
> I386_OPENBSD/cm3/m3-sys/m3tests/src/p0/p007/I386_OPENBSD/pgm
>
>    1:     1
>    2:     1    2
>    3:     1    2    3
>    4:     1    2    3    4
>    5:     1    2    3    4    5
>    6:     1    2    3    4    5    6
>    7:     1    2    3    4    5    6    7
>    8:     1    2    3    4    5    6    7    8
>    9: ^C
> Program received signal SIGINT, Interrupt.
> 0x00fac8f1 in poll () from /usr/lib/libc.so.50.1
> (m3gdb) set lang Modula-3
> (m3gdb) thread apply all bt
>
> Thread 10 (process 23708, thread 0x821ff000):
> #0  _thread_kern_sched (scp=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1  0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
>    lock=0x821ff0b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2  0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489
> #3  0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675
> #4  0x1c01c9bc in XWait (self=16_83e7a00c, m=16_83e7a0b4,  
> c=16_83e7a0a4,
>    alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240
> #5  0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:280
> #6  0x1c002efc in Main (mode=1) at ../Main.m3:75
> #7  0x1c011ca0 in RunMainBody (m=16_3c0010e0)
>    at ../src/runtime/common/RTLinker.m3:399
> #8  0x1c01105a in AddUnitI (m=16_3c0010e0)
>    at ../src/runtime/common/RTLinker.m3:113
> #9  0x1c0110e8 in AddUnit (b={"Main_M3", Declared at: ../Main.m3:70})
>    at ../src/runtime/common/RTLinker.m3:122
> #10 0x1c002806 in main (argc=1, argv=0xcfbc1fb4, envp=0xcfbc1fbc)
>    at _m3main.mc:4
> #11 0x1c00266c in ___start ()
> #12 0x1c0025bf in _start ()
> Warning: the current language does not match this frame.
>
> Thread 9 (process 23708, thread 0x821ff400):
> #0  _thread_kern_sched (scp=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1  0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
>    lock=0x821ff4b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2  0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489
> #3  0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675
> #4  0x1c01c9bc in XWait (self=16_83e7a0d0, m=16_83e7a0b4,  
> c=16_83e7a0a4,
>    alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240
> #5  0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:280
> #6  0x1c0029c6 in Task (self=16_83e7a0c0) at ../Main.m3:42
> #7  0x1c01ed3e in RunThread (me=16_7dbbb880)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:588
> #8  0x1c01ea83 in ThreadBase (param=16_7dbbb880)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:564
> #9  0x031cf37f in _thread_start ()
>    at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> #10 0x0000002b in ?? ()
> #11 0x00000000 in ?? ()
>
> Thread 8 (process 23708, thread 0x87b14c00):
> #0  _thread_kern_sched (scp=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1  0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
>    lock=0x87b14cb0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2  0x031d5e2d in pthread_cond_timedwait (cond=0x231ca0e0,  
> mutex=0x231ca0dc,
>    abstime=0x87731fa8) at /usr/src/lib/libpthread/uthread/ 
> uthread_cond.c:431
> #3  0x031cf5a7 in _thread_gc (arg=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_gc.c:181
> #4  0x031cf37f in _thread_start ()
>    at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> #5  0x0000002b in ?? ()
> #6  0x00000000 in ?? ()
>
> Thread 7 (process 23708, thread 0x87b14800):
> #0  _thread_kern_sched (scp=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1  0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
>    lock=0x87b148b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2  0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489
> #3  0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675
> #4  0x1c01c9bc in XWait (self=16_83e7c01c, m=16_83e7a0b4,  
> c=16_83e7a0a4,
>    alertable=FALSE) at ../src/thread/PTHREAD/ThreadPThread.m3:240
> #5  0x1c01cd5e in Wait (m=16_83e7a0b4, c=16_83e7a0a4)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:280
> #6  0x1c0029c6 in Task (self=16_83e7c00c) at ../Main.m3:42
> #7  0x1c01ed3e in RunThread (me=16_7dbbba80)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:588
> #8  0x1c01ea83 in ThreadBase (param=16_7dbbba80)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:564
> #9  0x031cf37f in _thread_start ()
>    at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> #10 0x0000002b in ?? ()
> #11 0x00000000 in ?? ()
>
> Thread 6 (process 23708, thread 0x87b14000):
> #0  _thread_kern_sched (scp=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1  0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
>    lock=0x87b140b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2  0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489
> #3  0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675
> #4  0x1c01c378 in LockMutex (m=16_83e7a0b4)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:159
> #5  0x1c002918 in Task (self=16_83e7e00c) at ../Main.m3:41
> #6  0x1c01ed3e in RunThread (me=16_7dbbbb80)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:588
> #7  0x1c01ea83 in ThreadBase (param=16_7dbbbb80)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:564
> #8  0x031cf37f in _thread_start ()
>    at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> #9  0x0000002b in ?? ()
> #10 0x00000000 in ?? ()
>
> Thread 5 (process 23708, thread 0x8b659800):
> #0  _thread_kern_sched (scp=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1  0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
>    lock=0x8b6598b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2  0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489
> #3  0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675
> #4  0x1c01c378 in LockMutex (m=16_83e7a0b4)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:159
> #5  0x1c002918 in Task (self=16_83e8000c) at ../Main.m3:41
> #6  0x1c01ed3e in RunThread (me=16_7dbbb680)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:588
> #7  0x1c01ea83 in ThreadBase (param=16_7dbbb680)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:564
> #8  0x031cf37f in _thread_start ()
>    at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> #9  0x0000002b in ?? ()
> #10 0x00000000 in ?? ()
>
> Thread 4 (process 23708, thread 0x8b659000):
> #0  _thread_kern_sched (scp=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1  0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
>    lock=0x8b6590b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2  0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489
> #3  0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675
> #4  0x1c01c378 in LockMutex (m=16_83e7a0b4)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:159
> #5  0x1c002918 in Task (self=16_83e8200c) at ../Main.m3:41
> #6  0x1c01ed3e in RunThread (me=16_7dbbb400)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:588
> #7  0x1c01ea83 in ThreadBase (param=16_7dbbb400)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:564
> #8  0x031cf37f in _thread_start ()
>    at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> #9  0x0000002b in ?? ()
> #10 0x00000000 in ?? ()
>
> Thread 3 (process 23708, thread 0x868d6400):
> #0  _thread_kern_sched (scp=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1  0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
>    lock=0x868d64b0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2  0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489
> #3  0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675
> #4  0x1c01c378 in LockMutex (m=16_83e7a0b4)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:159
> #5  0x1c002918 in Task (self=16_83e8400c) at ../Main.m3:41
> #6  0x1c01ed3e in RunThread (me=16_7dbbb180)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:588
> #7  0x1c01ea83 in ThreadBase (param=16_7dbbb180)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:564
> #8  0x031cf37f in _thread_start ()
>    at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> #9  0x0000002b in ?? ()
> #10 0x00000000 in ?? ()
>
> Thread 2 (process 23708, thread 0x868d6c00):
> #0  _thread_kern_sched (scp=0x0)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:482
> #1  0x031d8200 in _thread_kern_sched_state_unlock (state=PS_SIGTHREAD,
>    lock=0x868d6cb0, fname=0x1 <Address 0x1 out of bounds>, lineno=1)
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:581
> #2  0x031d6b9a in mutex_lock_common (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:489
> #3  0x031d6cb8 in pthread_mutex_lock (mutex=0x8a95b1f0)
>    at /usr/src/lib/libpthread/uthread/uthread_mutex.c:675
> #4  0x1c01c378 in LockMutex (m=16_83e7a0b4)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:159
> #5  0x1c002918 in Task (self=16_83e8600c) at ../Main.m3:41
> #6  0x1c01ed3e in RunThread (me=16_7dbbba00)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:588
> #7  0x1c01ea83 in ThreadBase (param=16_7dbbba00)
>    at ../src/thread/PTHREAD/ThreadPThread.m3:564
> #8  0x031cf37f in _thread_start ()
>    at /usr/src/lib/libpthread/uthread/uthread_create.c:240
> #9  0x0000002b in ?? ()
> #10 0x00000000 in ?? ()
>
> Thread 1 (process 23708, thread 0x862c9400):
> #0  _thread_kern_sched (scp=Cannot access memory at address 0xbb319
> )
>    at /usr/src/lib/libpthread/uthread/uthread_kern.c:392
> Cannot access memory at address 0xbb315
> #0  0x00fac8f1 in poll () from /usr/lib/libc.so.50.1
> (m3gdb)
>
> I hope this helps,
>
> Olaf
> -- 
> Olaf Wagner -- elego Software Solutions GmbH
>               Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin,  
> Germany
> phone: +49 30 23 45 86 96  mobile: +49 177 2345 869  fax: +49 30 23  
> 45 86 95
>   http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz:  
> Berlin
> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr:  
> DE163214194
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20091015/c81ff9e9/attachment-0002.html>


More information about the M3devel mailing list