<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
I haven't seen it fail on NT, except for PutCard in the test itself getting negative numbers.<br>I've run it just a few times now. One single and dual processor virtual machines.<br>Randy, has it failed many times for you?<br><br> - Jay<br><br>> To: rcolebur@SCIRES.COM<br>> Date: Sun, 27 Feb 2011 15:11:25 -0800<br>> From: mika@async.caltech.edu<br>> CC: m3devel@elegosoft.com<br>> Subject: Re: [M3devel] results of threadtest program on Windows7<br>> <br>> Ah, it just doesn't check command-line arguments that carefully.<br>> <br>> I think what you did is equivalent to "-tests STD".<br>> <br>>      Mika<br>> <br>> "Coleburn, Randy" writes:<br>> >Mika:<br>> ><br>> >No change with "-tests POSIX".<br>> ><br>> >Interesting twist:  On Windows 7, I thought I'd see what the command line o=<br>> >ptions are, and I typed "threadtest -help" rather than reading the code.<br>> ><br>> >First time, it produced what appears to be a NIL deref crash.  Then, I trie=<br>> >d it again and it ran to completion.  Something seems non-deterministic her=<br>> >e.  See below.<br>> ><br>> >C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest.exe -help<br>> >Writing file...done<br>> >Creating read threads...done<br>> >Creating fork threads...done<br>> >Creating alloc threads...done<br>> >Creating lock threads...done<br>> >running...printing oldest/median age/newest<br>> >.<br>> ><br>> >***<br>> >*** runtime error:<br>> >***    Attempt to reference an illegal memory location.<br>> >***    pc =3D 0x77762262<br>> >***<br>> ><br>> >Stack trace:<br>> >   FP         PC      Procedure<br>> >---------  ---------  -------------------------------<br>> > 0xcdf998  0x130351b  SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m=<br>> >3<br>> > 0xcdf9c0  0x77762262  <???><br>> > 0xcdf9d8  0x12e83b7  LockMutex + 0x4f in ..\src\thread\WIN32\ThreadWin32.m=<br>> >3<br>> > 0xcdfa00  0x12c7b08  GetChar + 0x28 in ..\src\rw\Rd.m3<br>> > 0xcdfb38  0x12c12e3  RApply + 0xd3 in ..\src\Main.m3<br>> > 0xcdfb74  0x12e971f  ThreadBase + 0x254 in ..\src\thread\WIN32\ThreadWin32=<br>> >.m3<br>> > 0xcdfb80  0x76543677  <???><br>> > 0xcdfbc0  0x77779f02  <???><br>> >.........  .........  ... more frames ...<br>> ><br>> >C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest.exe -help<br>> >Writing file...done<br>> >Creating read threads...done<br>> >Creating fork threads...done<br>> >Creating alloc threads...done<br>> >Creating lock threads...done<br>> >running...printing oldest/median age/newest<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0=<br>> > lock 0/0/0)<br>> >All tests complete.  Congratulations.<br>> ><br>> >Regards,<br>> >Randy Coleburn<br>> ><br>> >-----Original Message-----<br>> >From: Mika Nystrom [mailto:mika@async.caltech.edu]=20<br>> >Sent: Sunday, February 27, 2011 3:30 PM<br>> >To: Coleburn, Randy<br>> >Cc: m3devel@elegosoft.com<br>> >Subject: Re: [M3devel] results of threadtest program on Windows7=20<br>> ><br>> >Hi Randy,<br>> ><br>> >You can try it with -tests POSIX as well.<br>> ><br>> >I find on user threads it runs very slowly (but it does run) because of how=<br>> > unfair<br>> >the thread scheduler is.<br>> ><br>> >Next step might be to whittle down the tests and see if you can get a failu=<br>> >re with<br>> >a single test running and -n 2.  That would likely be the simplest scenario=<br>> > to<br>> >start further debugging from.<br>> ><br>> >     Mika<br>> ><br>> >"Coleburn, Randy" writes:<br>> >>Mika et al:<br>> >><br>> >>Thought I would try something else.<br>> >><br>> >>I took the sources of your thread test program to an older XP machine that=<br>> > =3D<br>> >>has CM3 circa August 2008.  This is the machine and implementation I used =<br>> >w=3D<br>> >>hen building a major project I did a couple years back.<br>> >><br>> >>The thread test program does indeed build on this old system, but when I r=<br>> >u=3D<br>> >>n it, I get different results than with the latest HEAD branch code. =3D20<br>> >><br>> >>After it prints "running...printing oldest/median age/newest", on the next=<br>> > =3D<br>> >>line I get two periods ".." and now the program seems hung.  I'll let it "=<br>> >r=3D<br>> >>un" for a few more minutes to see if anything else happens before killing =<br>> >i=3D<br>> >>t.<br>> >><br>> >>At least we don't get the subscript and assertion failures on this older C=<br>> >M=3D<br>> >>3 platform.<br>> >><br>> >>Regards,<br>> >>Randy Coleburn<br>> >><br>> >><br>> >>-----Original Message-----<br>> >>From: Coleburn, Randy=3D20<br>> >>Sent: Sunday, February 27, 2011 2:09 PM<br>> >>To: m3devel@elegosoft.com<br>> >>Subject: Re: [M3devel] results of threadtest program on Windows7<br>> >><br>> >>Mika:<br>> >><br>> >>Ok, I've updated to latest HEAD and I've also built Jay's m3sleep program.<br>> >><br>> >>Here is what happens now when I run your threadtest program on Windows 7.<br>> >><br>> >>C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest -tests ALL,-fo=<br>> >r=3D<br>> >>k<br>> >>Writing file...done<br>> >>Creating read threads...done<br>> >>Creating nxread threads...done<br>> >>Creating tryexcept threads...done<br>> >>Creating forktoomuch threads...done<br>> >>Creating alloc threads...done<br>> >>Creating creat threads...done<br>> >>Creating lock threads...done<br>> >>running...printing oldest/median age/newest<br>> >><br>> >><br>> >>***<br>> >>*** runtime error:<br>> >>***    An array subscript was out of range.<br>> >>***    file "..\src\runtime\common\RTCollector.m3", line 418<br>> >>***<br>> >><br>> >><br>> >><br>> >>***<br>> >>*** runtime error:<br>> >>***    <*ASSERT*> failed.<br>> >>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 841<br>> >>***<br>> >><br>> >>The last error repeats ad infinitum until I press CNTRL-C to abort.<br>> >><br>> >>I'll send more info on the Windows install of Modula3 in a subsequent post=<br>> >.<br>> >><br>> >>Regards,<br>> >>Randy Coleburn<br>> >><br>> >>-----Original Message-----<br>> >>From: Mika Nystrom [mailto:mika@async.caltech.edu]=3D20<br>> >>Sent: Saturday, February 26, 2011 12:55 PM<br>> >>To: Coleburn, Randy<br>> >>Cc: m3devel@elegosoft.com<br>> >>Subject: Re: [M3devel] results of threadtest program on Windows7=3D20<br>> >><br>> >>Hi Randy,<br>> >><br>> >>Hm yes it looks like my Windows programming skills leave something<br>> >>to be desired.<br>> >><br>> >>You can run the thread tester while skipping a test as follows<br>> >><br>> >>   threadtest -tests ALL,-fork<br>> >><br>> >>(for instance)<br>> >><br>> >>if you just run=3D20<br>> >><br>> >>   threadtest -sadfassdaf<br>> >><br>> >>it'll print the tests that are available.<br>> >><br>> >>As it happens, I just had to upgrade my windows 2000 system to windows 7.<br>> >>Can you give me a very brief description of what you did to install Modula=<br>> >-=3D<br>> >>3<br>> >>on this system?<br>> >><br>> >>     Mika<br>> >><br>> >>"Coleburn, Randy" writes:<br>> >>>--_000_D67F02DDC62F7545A6B84C285F88F3E6EE25C849atlex02srv_<br>> >>>Content-Type: text/plain; charset=3D3D"us-ascii"<br>> >>>Content-Transfer-Encoding: quoted-printable<br>> >>><br>> >>>Mika:<br>> >>><br>> >>>I've finally managed to get cm3 rebuilt on Windows 7 again.<br>> >>><br>> >>>So, I ran your threadtest program.<br>> >>><br>> >>>Here are the results.  Note the "..." is where I cut out a bunch of the r=<br>> >e=3D<br>> >>p=3D3D<br>> >>>eating "ERROR FApply" messages.<br>> >>><br>> >>>C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest.exe<br>> >>>Writing file...done<br>> >>>Creating read threads...done<br>> >>>Creating fork threads...done<br>> >>>Creating alloc threads...done<br>> >>>Creating lock threads...done<br>> >>>running...printing oldest/median age/newest<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>.<br>> >>>.<br>> >>>.<br>> >>>***<br>> >>>*** runtime error:<br>> >>>***    An enumeration or subrange value was out of range.<br>> >>>***    file "..\src\Main.m3", line 340<br>> >>>***<br>> >>><br>> >>>laziest thread is 0/0/ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The sy=<br>> >ste=3D<br>> >>m c=3D3D<br>> >>>annot find the file specified.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>.<br>> >>>.<br>> >>>.<br>> >>>laziest thread is 0/0/ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The sy=<br>> >ste=3D<br>> >>m c=3D3D<br>> >>>annot find the file specified.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>.<br>> >>>.<br>> >>>.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>ERROR FApply: OSError.E:  ErrorCode=3D3D3D2: The system cannot find the f=<br>> >ile=3D<br>> >> sp=3D3D<br>> >>>ecified.<br>> >>>Stack trace:<br>> >>>   FP         PC      Procedure<br>> >>>---------  ---------  -------------------------------<br>> >>>0x30fbd0  0x127218a  PutStats + 0x1a3 in ..\src\Main.m3<br>> >>>0x30fcc0  0x1273825  Main_M3 + 0x11db(!) in ..\src\Main.m3<br>> >>><br>> >>>Regards,<br>> >>>Randy Coleburn<br>> >>><br>> >>>--_000_D67F02DDC62F7545A6B84C285F88F3E6EE25C849atlex02srv_<br>> >>>Content-Type: text/html; charset=3D3D"us-ascii"<br>> >>>Content-Transfer-Encoding: quoted-printable<br>> >>><br>                                    </body>
</html>