<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'> I am a bit nervous about our use GetThreadContext in 32bit code on 64bit Windows per here: <BR> <BR>  <a href="http://zachsaw.blogspot.com/2010/11/wow64-bug-getthreadcontext-may-return.html">http://zachsaw.blogspot.com/2010/11/wow64-bug-getthreadcontext-may-return.html</a>   <BR> <BR> <BR> And disappointed. Cooperative suspend will fix this someday. <BR> <BR> <BR> - Jay<br> <BR><div><hr id="stopSpelling">From: rcolebur@SCIRES.COM<br>To: hosking@cs.purdue.edu<br>Date: Mon, 13 Jan 2014 21:02:52 +0000<br>CC: m3devel@elegosoft.com<br>Subject: Re: [M3devel] CM3 crashing<br><br>



<style><!--
.ExternalClass p.ecxMsoNormal, .ExternalClass li.ecxMsoNormal, .ExternalClass div.ecxMsoNormal {
font-size:12.0pt;
font-family:"Times New Roman","serif";
}

.ExternalClass a:link, .ExternalClass span.ecxMsoHyperlink {
color:blue;
text-decoration:underline;
}

.ExternalClass span.ecxMsoHyperlinkFollowed {
color:purple;
text-decoration:underline;
}

.ExternalClass p.ecxMsoAcetate, .ExternalClass li.ecxMsoAcetate, .ExternalClass div.ecxMsoAcetate {
font-size:8.0pt;
font-family:"Tahoma","sans-serif";
}

.ExternalClass span.ecxBalloonTextChar {
font-family:"Tahoma","sans-serif";
}

.ExternalClass span.ecxapple-converted-space {
}

.ExternalClass span.ecxEmailStyle20 {
font-family:"Calibri","sans-serif";
color:#1F497D;
}

.ExternalClass span.ecxEmailStyle21 {
font-family:"Calibri","sans-serif";
color:#1F497D;
}

.ExternalClass .ecxMsoChpDefault {
font-size:10.0pt;
}

.ExternalClass div.ecxWordSection1 {
}

--></style>


<div class="ecxWordSection1">
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Tony:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Here are a couple more runs on 64-bit Windows 7 that yield different results, albeit using the “-verbose” option.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>These may give some more clues.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>I note that in both cases it appears a read thread and a fork thread get the same ID (0) which looks
<b>very suspicious</b>.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><b><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>By my read of the code (WITH id = i * nPer + j), I think the 2<sup>nd</sup> fork thread should be ID=10, not ID=0.</span></b></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Oops, now I see the problem:  there is a bug in the PutInt procedure.  The test (IF c > 10) should read instead (IF c >= 10).  I’ll commit a fix for that momentarily.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>But this fix just solves the output problem; it doesn’t affect the fact that the program is misbehaving and crashing.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>RUN #1:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386><b>threadtest.exe @M3paranoidgc -verbose</b></span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Writing file...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating read threads...</span></p>
<p class="ecxMsoNormal"><b><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read=0</span></b></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read=1</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read=2</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating fork threads...</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork=9</span></p>
<p class="ecxMsoNormal"><b><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork=0</span></b></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork=11</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating alloc threads...</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc=15</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc=16</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc=17</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating lock threads...</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock=21</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock=22</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock=23</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>running...printing oldest/median age/newest</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    pc = 0xc286e0 = Init + 0x79 in ..\src\rw\FileRd.m3</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Stack trace:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   FP         PC      Procedure</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>---------  ---------  -------------------------------</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0x7cfd60   0xc6afeb  SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0x7cfda8   0xc286e0  Init + 0x79 in ..\src\rw\FileRd.m3</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0x7cfdd4   0xc2865d  Open + 0x4d in ..\src\rw\FileRd.m3</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0x7cff0c   0xc21350  RApply + 0x160 in ..\src\Main.m3</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0x7cff48   0xc4b71b  ThreadBase + 0x255 in ..\src\thread\WIN32\ThreadWin32.m3</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0x7cff54  0x76db336a  <???></span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0x7cff94  0x7770bf32  <???></span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>.........  .........  ... more frames ...</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>RUN #2:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest.exe -verbose</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Writing file...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating read threads...</span></p>
<p class="ecxMsoNormal"><b><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read=0</span></b></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read=1</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read=2</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating fork threads...</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork=9</span></p>
<p class="ecxMsoNormal"><b><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork=0</span></b></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork=11</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating alloc threads...</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc=15</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc=16</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc=17</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating lock threads...</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock=21</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock=22</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock=23</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>running...printing oldest/median age/newest</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 0 completed 534 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 1 completed 606 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 2 completed 398 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 9 completed 8 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 10 completed 8 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 11 completed 8 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 15 completed 18296 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 16 completed 44871 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 17 completed 79125 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 21 completed 3845080 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 22 completed 2537613 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 23 completed 4506151 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 0 completed 790 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 1 completed 786 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 2 completed 675 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 9 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 10 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 11 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 15 completed 22091 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 16 completed 47532 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 17 completed 68901 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  lock Thread 21 completed 4560731 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 22 completed 3440795 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 23 completed 6433538 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 0 completed 725 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 1 completed 705 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 2 completed 617 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 9 completed 10 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 10 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 11 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 15 completed 18560 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 16 completed 44487 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 17 completed 87219 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 21 completed 3769840 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 22 completed 3037581 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 23 completed 6097922 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 0 completed 825 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 1 completed 802 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 2 completed 669 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 9 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 10 completed 10 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 11 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 15 completed 16877 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 16 completed 53277 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 17 completed 77986 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 21 completed 4087218 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 22 completed 3116357 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 23 completed 6466214 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 0 completed 684 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 1 completed 686 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 2 completed 648 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 9 completed 10 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 10 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 11 completed 10 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 15 completed 19717 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 16 completed 47797 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 17 completed 78110 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 21 completed 4580435 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 22 completed 2974247 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 23 completed 5843850 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 0 completed 748 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 1 completed 755 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   read Thread 2 completed 639 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 9 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 10 completed 10 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   fork Thread 11 completed 9 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 15 completed 18037 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 16 completed 46293 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   alloc Thread 17 completed 82560 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 21 completed 4210008 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 22 completed 2708008 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   lock Thread 23 completed 6139723 loops.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>..</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    pc = 0xc4e39a = Move + 0x50 in ..\src\runtime\common\RTCollector.m3</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><b><i><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>This last assert repeats indefinitely until you press CTRL-C.</span></i></b></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>--Randy</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<div>
<div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentColor currentColor; padding: 3pt 0in 0in;">
<p class="ecxMsoNormal"><b><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'>From:</span></b><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'> Coleburn, Randy
<br>
<b>Sent:</b> Monday, January 13, 2014 3:14 PM<br>
<b>To:</b> Tony Hosking<br>
<b>Cc:</b> m3devel<br>
<b>Subject:</b> Re: [M3devel] CM3 crashing</span></p>
</div>
</div>
<p class="ecxMsoNormal"> </p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Tony:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Yes, it is from the HEAD as of 17 December 2013.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Using the
<b>@M3paranoidgc</b> flag,</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>On
<b>32-bit Windows XP</b> I get:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386><b>threadtest.exe @M3paranoidgc</b></span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Writing file...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating read threads...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating fork threads...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating alloc threads...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating lock threads...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>running...printing oldest/median age/newest</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    pc = 0x431755 = RefSanityCheck + 0x2c in ..\src\runtime\common\RTCollector.m3</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><b><i><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>This last assert repeats indefinitely until you press CTRL-C.</span></i></b></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>On
<b>64-bit Windows 7</b> I get:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386><b>threadtest.exe @M3paranoidgc</b></span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Writing file...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating read threads...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating fork threads...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating alloc threads...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating lock threads...done</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>running...printing oldest/median age/newest</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    An array subscript was out of range.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\rw\FileRd.m3", line 83</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    An enumeration or subrange value was out of range.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\runtime\common\RTType.m3", line 71</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
<p class="ecxMsoNormal"><b><i><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>This last assert repeats indefinitely until you press CTRL-C.</span></i></b></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>--Randy</span></p>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
<div>
<div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentColor currentColor; padding: 3pt 0in 0in;">
<p class="ecxMsoNormal"><b><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'>From:</span></b><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'> Tony Hosking [<a href="mailto:hosking@cs.purdue.edu">mailto:hosking@cs.purdue.edu</a>]
<br>
<b>Sent:</b> Monday, January 13, 2014 3:03 PM<br>
<b>To:</b> Coleburn, Randy<br>
<b>Cc:</b> Peter McKinna; m3devel<br>
<b>Subject:</b> EXT:Re: [M3devel] CM3 crashing</span></p>
</div>
</div>
<p class="ecxMsoNormal"> </p>
<p class="ecxMsoNormal">Is this from the head of source?</p>
<div>
<p class="ecxMsoNormal">Also, please run with @M3paranoidgc flag.</p>
</div>
<div>
<p class="ecxMsoNormal">
 </p>
<div>
<div>
<p class="ecxMsoNormal">On Jan 13, 2014, at 2:55 PM, Coleburn, Randy <<a href="mailto:rcolebur@SCIRES.COM">rcolebur@SCIRES.COM</a>> wrote:</p>
</div>
<p class="ecxMsoNormal">
 </p>
<div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>I’ve also tested on 32-bit Windows XP and the thread test program crashes there also. </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox\cm3\m3-libs>set CM3_TARGET=NT386</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox\cm3\m3-libs>cm3 --version</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Critical Mass Modula-3 version d5.9.0</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  last updated: 2010-07-21</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  compiled: 2013-12-17 17:28:52</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  configuration: C:\cm3\bin\cm3.cfg</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  host: NT386</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  target: NT386</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Here is the output:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>threadtest.exe --help</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Writing file...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating read threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating fork threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating alloc threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating lock threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>running...printing oldest/median age/newest</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    pc = 0x42e34a = Move + 0x50 in ..\src\runtime\common\RTCollector.m3</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><b><i><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>This last assert repeats indefinitely until you press CTRL-C.</span></i></b></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>--Randy</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentColor currentColor; padding: 3pt 0in 0in;">
<div>
<p class="ecxMsoNormal"><b><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'>From:</span></b><span class="ecxapple-converted-space"><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'> </span></span><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'>Coleburn,
 Randy<span class="ecxapple-converted-space"> </span><br>
<b>Sent:</b><span class="ecxapple-converted-space"> </span>Monday, January 13, 2014 2:17 PM<br>
<b>To:</b><span class="ecxapple-converted-space"> </span>Tony Hosking; Peter McKinna<br>
<b>Cc:</b><span class="ecxapple-converted-space"> </span>m3devel<br>
<b>Subject:</b><span class="ecxapple-converted-space"> </span>Re: [M3devel] CM3 crashing</span></p>
</div>
</div>
</div>
<div>
<p class="ecxMsoNormal"> </p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Tony et al:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>The thread test program fails for me on 64-bit Windows 7.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>I’ve listed output from a couple of runs below:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox>cm3 --version</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Critical Mass Modula-3 version d5.9.0</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  last updated: 2010-07-21</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  compiled: 2014-01-07 06:55:14</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  configuration: C:\cm3\bin\cm3.cfg</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  host: NT386</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>  target: NT386</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>FIRST RUN:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest.exe</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Writing file...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating read threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating fork threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating alloc threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating lock threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>running...printing oldest/median age/newest</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\runtime\common\RTCollector.m3", line 418</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    <*ASSERT*> failed.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 823</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><b><i><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>               …this last assertion repeats until you press CTRL-C to abort the program…</span></i></b></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>SECOND RUN:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest.exe /help</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Writing file...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating read threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating fork threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating alloc threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Creating lock threads...done</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>running...printing oldest/median age/newest</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>....</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>*** runtime error:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    Attempt to reference an illegal memory location.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***    pc = 0x776f22d2</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>***</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Stack trace:</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>   FP         PC      Procedure</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>---------  ---------  -------------------------------</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0xa6f9a8   0xc6afeb  SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0xa6f9d0  0x776f22d2  <???></span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0xa6f9e8   0xc4a39b  LockMutex + 0x4f in ..\src\thread\WIN32\ThreadWin32.m3</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0xa6fa10   0xc299f8  GetChar + 0x28 in ..\src\rw\Rd.m3</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0xa6fb48   0xc213a8  RApply + 0x1b8 in ..\src\Main.m3</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0xa6fb84   0xc4b71b  ThreadBase + 0x255 in ..\src\thread\WIN32\ThreadWin32.m3</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0xa6fb90  0x76db336a  <???></span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>0xa6fbd0  0x7770bf32  <???></span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>.........  .........  ... more frames ...</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>Maybe this info will be useful in tracking down the problem.</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'>--Randy</span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<p class="ecxMsoNormal"><span style='color: rgb(31, 73, 125); font-family: "Calibri","sans-serif"; font-size: 11pt;'> </span></p>
</div>
<div>
<div style="border-width: 1pt medium medium; border-style: solid none none; border-color: rgb(181, 196, 223) currentColor currentColor; padding: 3pt 0in 0in;">
<div>
<p class="ecxMsoNormal"><b><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'>From:</span></b><span class="ecxapple-converted-space"><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'> </span></span><span style='font-family: "Tahoma","sans-serif"; font-size: 10pt;'>Tony
 Hosking [<a href="mailto:hosking@cs.purdue.edu"><span style="color: purple;">mailto:hosking@cs.purdue.edu</span></a>]<span class="ecxapple-converted-space"> </span><br>
<b>Sent:</b><span class="ecxapple-converted-space"> </span>Monday, January 13, 2014 11:04 AM<br>
<b>To:</b><span class="ecxapple-converted-space"> </span>Peter McKinna<br>
<b>Cc:</b><span class="ecxapple-converted-space"> </span>m3devel<br>
<b>Subject:</b><span class="ecxapple-converted-space"> </span>EXT:Re: [M3devel] CM3 crashing</span></p>
</div>
</div>
</div>
<div>
<p class="ecxMsoNormal"> </p>
</div>
<div>
<div>
<p class="ecxMsoNormal">Let us assume that the user-level threads are functioning properly w.r.to GC (can someone confirm?).</p>
</div>
</div>
<div>
<div>
<p class="ecxMsoNormal">In which case, it would be good to have as many eyes as possible take a look at the differences between ThreadPosixC.c (ProcessContext) and ThreadPThreadC.c (ProcessLive) to see if we can spot a problem.</p>
</div>
</div>
<div>
<div>
<p class="ecxMsoNormal"> </p>
</div>
</div>
<div>
<div>
<p class="ecxMsoNormal">As I understand it, the crash occurs even for non-concurrent (@M3noincremental) and non-generational (@M3nogenerational) GC.  Combined with my assumption that user threads work fine, it would seem to point the
 finger at stack scanning.  Can someone confirm?</p>
</div>
</div>
<div>
<div>
<p class="ecxMsoNormal"> </p>
</div>
</div>
<div>
<div>
<p class="ecxMsoNormal">If the failure is *only* with concurrent or generational collection then we might suspect unsafe code (perhaps newly introduced?) messing with heap references without keeping the collector informed.</p>
</div>
</div>
<div>
<div>
<p class="ecxMsoNormal"> </p>
</div>
</div>
<div>
<div>
<div>
<p class="ecxMsoNormal">On Jan 12, 2014, at 10:54 PM, Peter McKinna <<a href="mailto:peter.mckinna@gmail.com"><span style="color: purple;">peter.mckinna@gmail.com</span></a>> wrote:</p>
</div>
</div>
<p class="ecxMsoNormal">
 </p>
<div>
<div>
<div>
<div>
<p class="ecxMsoNormal">
Hey,</p>
</div>
<div>
<p class="ecxMsoNormal">  I was trying to get a handle on that problem last year. The threadtest program is really a stress tester of the collector/allocator with pthreads. If you run it with just the tests read and alloc you pretty much
 always get a crash. If you run them with paranoidgc it will crash in the heap checker. Tony thought it was a clear cut  problem of the roots of some ref not being found on a thread stack. I mucked around with code to get some output and the stacks looked ok
 to me but I could be wrong. All stacks are checked whilst the threads are blocked in a signal handler, the design of which looks fine as far as I can tell. This test is characterised by some slow threads (the read threads) and a bunch of fast threads (the
 alloc threads). Even if you modify the test to have only one read thread the problem occurs. I have had misgivings about mixing signals and threads having been bitten many years ago, but really this is the only way the collector can get its raw refs to check.<span class="ecxapple-converted-space"> </span><br>
My guess is its a subtle timing or lock problem maybe a lurking bug in the collector itself. One thing I noticed is that in ThreadPThread__ProcessStopped  the second call to   p(context, ((char *)context) + sizeof(ucontext_t)); according to the comment is to
 process the registers. But the registers should already be on the stack and anyway this call is a partial duplicate of the previous one.</p>
</div>
</div>
<p class="ecxMsoNormal">
It would be good to raise the priority on this problem. Trust in the collector has always been at the heart of m3 programs.</p>
</div>
<div>
<p class="ecxMsoNormal">Regards Peter</p>
</div>
<div>
<div>
<p class="ecxMsoNormal"> </p>
</div>
</div>
</div>
<div>
<p class="ecxMsoNormal">
 </p>
<div>
<div>
<p class="ecxMsoNormal">On Mon, Jan 13, 2014 at 11:25 AM, <<a href="mailto:mika@async.caltech.edu" target="_blank"><span style="color: purple;">mika@async.caltech.edu</span></a>> wrote:</p>
</div>
<div>
<p class="ecxMsoNormal">Yes it works in PM3 (still, since I use PM3 on FreeBSD4, never saw a reason to switch to CM3).<br>
<br>
I figured there aren't actually implementations of Word.Xor, Word.Or,<br>
and Word.And as procedures but they get inlined somehow?<br>
<br>
BTW, any idea about what's wrong with pthreads?  Do you think the issue<br>
is with the garbage collector or with the threads, off the top of your<br>
head?</p>
</div>
<div>
<div>
<p class="ecxMsoNormal"><br>
Tony Hosking writes:<br>
>Are you saying passing these used to work in PM3?</p>
</div>
</div>
<div>
<p class="ecxMsoNormal">>Sounds like a front-end bug.  I=92m curious what changed to break it.</p>
</div>
<div>
<div>
<p class="ecxMsoNormal">><br>
>On Jan 12, 2014, at 12:58 PM,<span class="ecxapple-converted-space"> </span><a href="mailto:mika@async.caltech.edu"><span style="color: purple;">mika@async.caltech.edu</span></a><span class="ecxapple-converted-space"> </span>wrote:<br>
></p>
</div>
</div>
<div>
<p class="ecxMsoNormal">>>=20<br>
>> The code is:<br>
>>=20<br>
>>              HIntExpr.Xor =3D> RETURN NewConst(CBitwise(av, bv, =<br>
>Word.Xor), ab)<br>
>>            |<br>
>>              HIntExpr.Bor =3D> RETURN NewConst(CBitwise(av, bv, =<br>
>Word.Or), ab)<br>
>>            |<br>
>>              HIntExpr.Band =3D> RETURN NewConst(CBitwise(av, bv, =<br>
>Word.And), ab)<br>
>>=20<br>
>> I guess it doesn't like passing Word.Xor, Word.Or, and Word.And ...=20<br>
><br>
><br>
><br>
>Antony Hosking | Associate Professor | Computer Science | Purdue =</p>
</div>
<div>
<div>
<p class="ecxMsoNormal">>University<br>
>305 N. University Street | West Lafayette | IN 47907 | USA<br>
>Mobile<span class="ecxapple-converted-space"> </span><a target="_blank"><span style="color: purple;">+1 765 427 5484</span></a><br>
><br>
><br>
><br>
></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="ecxMsoNormal"> </p>
</div>
</div></div>                                          </div></body>
</html>