<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div apple-content-edited="true"><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div><font class="Apple-style-span" face="GillSans-Light">Looks like a spurious wakeup.  Let me look in to it.  Perhaps broken by my recent changes.</font></div></span></span></span></span></span></span></span><br class="Apple-interchange-newline"></span></div></span> </div><br><div><div>On 21 Feb 2009, at 10:36, Rodney M. Bates wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>I got an assertion failure in ThreadPThread.m3.<br><br>Here is a transcript.  Below that is a more helpful backtrace I got by<br>manually stopping it as quickly as I could after the assertion failure<br>messages.  I think the second backtrace is not on the relevant thread<br>however, because commenting out the Thread.Pause does not make the failure<br>go away, just makes it harder to catch.<br><br>Note: I have a lot of weakref cleanups registered.  Executing<br>RTCollector.Disable ( )  early in the program and leaving it<br>disabled makes the problem go away.<br><br><br>---------------------------------------------------------------------------------------------------------------------<br><br>rodney@yellowstone:~/proj/m3/cm3-new/cm3/m3-libs/m3core/tests/newtext/src$ m3gdb test<br>GNU gdb plus Modula-3 6.4<br>Copyright 2005 Free Software Foundation, Inc.<br>GDB is free software, covered by the GNU General Public License, and you are<br>welcome to change it and/or distribute copies of it under certain conditions.<br>Type "show copying" to see the conditions.<br>There is absolutely no warranty for GDB.  Type "show warranty" for details.<br>This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".<br><br>(m3gdb) run -nos<br>Starting program: /home/rodney/proj/m3/cm3-new/cm3/m3-libs/m3core/tests/newtext/src/test -nos<br>Signal        Stop      Print   Pass to program Description<br>SIG64         No        No      Yes             Real-time event 64<br>[Thread debugging using libthread_db enabled]<br>[New LWP 32595]<br>Estimating overhead of timing.<br>Generating initial leaf strings.<br>Generating initial leaf strings.<br><br>      0\<br>Garbage collection disabled for better timing.<br><br>     62[New Thread -1220703344 (LWP 32598)]<br>[New Thread -1220429104 (LWP 32595)]<br>....+....1....+....2....+....3....+....4....+....|<br>   5000....+....6....+....7....+....8....+....9....+....|<br>  10000....+....1....+....2....+....3....+....4....+....|<br>  15000....+....6....+....7....+....8....+....9....+....|<br>  20000....+....1....+....2....+....3....+....4....+....|<br>  25000....+....6....+....7....+....8....+....9....+....|<br>  30000....+....1....+....2....+....3....+....4....+....|<br>  35000....+....6....+....7....+....8....+....9....+....|<br>  40000....+....1....+....2....+....3....+....4....+....|<br>  45000....+....6....+....7....+....8....+....9....+....|<br>  50000<br><br>Garbage collection enabled and triggered ...<br><br>***<br>*** runtime error:<br>***    <*ASSERT*> failed.<br>***    file "../src/thread/PTHREAD/ThreadPThread.m3", line 1449<br>***<br><br>Garbage collection completed.<br><br>Program received signal SIGINT, Interrupt.<br>[Switching to Thread -1220429104 (LWP 32595)]<br>0xb7f7d410 in __kernel_vsyscall ()<br>(m3gdb) bt<br>#0  0xb7f7d410 in __kernel_vsyscall ()<br>#1  0xb7577589 in __lll_lock_wait () from /lib/tls/i686/cmov/libpthread.so.0<br>#2  0xb7572ba6 in _L_lock_95 () from /lib/tls/i686/cmov/libpthread.so.0<br>../../gdb/gdb/dwarf2-frame.c:490: internal-error: Unknown CFI encountered.<br>A problem internal to GDB has been detected,<br>further debugging may prove unreliable.<br>Quit this debugging session? (y or n) y<br>../../gdb/gdb/dwarf2-frame.c:490: internal-error: Unknown CFI encountered.<br>A problem internal to GDB has been detected,<br>further debugging may prove unreliable.<br>Create a core file of GDB? (y or n) y<br>Aborted (core dumped)<br>---------------------------------------------------------------------------------------------------------------------<br>Garbage collection enabled and triggered ...<br><br>***<br>*** runtime error:<br>***    <*ASSERT*> failed.<br>***    file "../src/thread/PTHREAD/ThreadPThread.m3", line 1449<br>***<br><br><br>Program received signal SIGINT, Interrupt.<br>[Switching to Thread -1220732208 (LWP 32623)]<br>0xb7f33410 in __kernel_vsyscall ()<br>(m3gdb) bt<br>#0  0xb7f33410 in __kernel_vsyscall ()<br>#1  0xb752e196 in __nanosleep_nocancel () from /lib/tls/i686/cmov/libpthread.so.0<br>#2  0xb75cd016 in XPause (self=Invalid C/C++ type code 26 in symbol table.<br>) at ../src/thread/PTHREAD/ThreadPThread.m3:651<br>#3  0xb75cd193 in Pause (n=Invalid C/C++ type code 44 in symbol table.<br>) at ../src/thread/PTHREAD/ThreadPThread.m3:668<br>Can't find child block 1, at level 1, of parent procedure "Test__GetParams", for nested procedure "Test__GetParams__1__1__NumArg.778"<br>#4  0x08054c4c in ResumeCollection () at ../src/Test.m3:1354<br>#5  0x0805631b in FillBase (N=Invalid C/C++ type code 40 in symbol table.<br>) at ../src/Test.m3:1628<br>#6  0x0805b764 in Work () at ../src/Test.m3:2536<br>#7  0x0805d387 in Test (mode=Invalid C/C++ type code 39 in symbol table.<br>) at ../src/Test.m3:2658<br>#8  0xb75ba22c in RunMainBody (m=Invalid C/C++ type code 29 in symbol table.<br>) at ../src/runtime/common/RTLinker.m3:399<br>#9  0xb75b95e6 in AddUnitI (m=Invalid C/C++ type code 29 in symbol table.<br>) at ../src/runtime/common/RTLinker.m3:113<br>#10 0xb75b9674 in AddUnit (b=Invalid C/C++ type code 31 in symbol table.<br>) at ../src/runtime/common/RTLinker.m3:122<br>#11 0x08049f7e in main (argc=2, argv=0xbfdd4424, envp=0xbfdd4430) at _m3main.mc:4<br>#12 0xb73e8450 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6<br>#13 0x08049ed1 in _start ()<br>(m3gdb) frame 4<br>#4  0x08054c4c in ResumeCollection () at ../src/Test.m3:1354<br>1354        ; Thread . Pause ( 2.0D0 )<br>Current language:  auto; currently Modula-3<br>(m3gdb) down<br>#3  0xb75cd193 in Pause (n=Invalid C/C++ type code 44 in symbol table.<br>) at ../src/thread/PTHREAD/ThreadPThread.m3:668<br>668           XPause(self, n, alertable := FALSE);<br>(m3gdb) down<br>#2  0xb75cd016 in XPause (self=16_b66607ac, n=Invalid C/C++ type code 44 in symbol table.<br>) at ../src/thread/PTHREAD/ThreadPThread.m3:651<br>651           WITH r = Utime.nanosleep(amount, remaining) DO<br>(m3gdb) down<br>#1  0xb752e196 in __nanosleep_nocancel () from /lib/tls/i686/cmov/libpthread.so.0<br>(m3gdb) down<br>#0  0xb7f33410 in __kernel_vsyscall ()<br>(m3gdb)<br><br><br>---------------------------------------------------------------------------------------------------------------------<br></div></blockquote></div><br></body></html>