[M3devel] results of threadtest program on Windows7

Coleburn, Randy rcolebur at SCIRES.COM
Sun Feb 27 22:03:13 CET 2011


Mika:

No change with "-tests POSIX".

Interesting twist:  On Windows 7, I thought I'd see what the command line options are, and I typed "threadtest -help" rather than reading the code.

First time, it produced what appears to be a NIL deref crash.  Then, I tried it again and it ran to completion.  Something seems non-deterministic here.  See below.

C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest.exe -help
Writing file...done
Creating read threads...done
Creating fork threads...done
Creating alloc threads...done
Creating lock threads...done
running...printing oldest/median age/newest
.

***
*** runtime error:
***    Attempt to reference an illegal memory location.
***    pc = 0x77762262
***

Stack trace:
   FP         PC      Procedure
---------  ---------  -------------------------------
 0xcdf998  0x130351b  SystemError + 0x64 in ..\src\runtime\NT386\RTSignal.m3
 0xcdf9c0  0x77762262  <???>
 0xcdf9d8  0x12e83b7  LockMutex + 0x4f in ..\src\thread\WIN32\ThreadWin32.m3
 0xcdfa00  0x12c7b08  GetChar + 0x28 in ..\src\rw\Rd.m3
 0xcdfb38  0x12c12e3  RApply + 0xd3 in ..\src\Main.m3
 0xcdfb74  0x12e971f  ThreadBase + 0x254 in ..\src\thread\WIN32\ThreadWin32.m3
 0xcdfb80  0x76543677  <???>
 0xcdfbc0  0x77779f02  <???>
.........  .........  ... more frames ...

C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest.exe -help
Writing file...done
Creating read threads...done
Creating fork threads...done
Creating alloc threads...done
Creating lock threads...done
running...printing oldest/median age/newest
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)
All tests complete.  Congratulations.

Regards,
Randy Coleburn

-----Original Message-----
From: Mika Nystrom [mailto:mika at async.caltech.edu] 
Sent: Sunday, February 27, 2011 3:30 PM
To: Coleburn, Randy
Cc: m3devel at elegosoft.com
Subject: Re: [M3devel] results of threadtest program on Windows7 

Hi Randy,

You can try it with -tests POSIX as well.

I find on user threads it runs very slowly (but it does run) because of how unfair
the thread scheduler is.

Next step might be to whittle down the tests and see if you can get a failure with
a single test running and -n 2.  That would likely be the simplest scenario to
start further debugging from.

     Mika

"Coleburn, Randy" writes:
>Mika et al:
>
>Thought I would try something else.
>
>I took the sources of your thread test program to an older XP machine that =
>has CM3 circa August 2008.  This is the machine and implementation I used w=
>hen building a major project I did a couple years back.
>
>The thread test program does indeed build on this old system, but when I ru=
>n it, I get different results than with the latest HEAD branch code. =20
>
>After it prints "running...printing oldest/median age/newest", on the next =
>line I get two periods ".." and now the program seems hung.  I'll let it "r=
>un" for a few more minutes to see if anything else happens before killing i=
>t.
>
>At least we don't get the subscript and assertion failures on this older CM=
>3 platform.
>
>Regards,
>Randy Coleburn
>
>
>-----Original Message-----
>From: Coleburn, Randy=20
>Sent: Sunday, February 27, 2011 2:09 PM
>To: m3devel at elegosoft.com
>Subject: Re: [M3devel] results of threadtest program on Windows7
>
>Mika:
>
>Ok, I've updated to latest HEAD and I've also built Jay's m3sleep program.
>
>Here is what happens now when I run your threadtest program on Windows 7.
>
>C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest -tests ALL,-for=
>k
>Writing file...done
>Creating read threads...done
>Creating nxread threads...done
>Creating tryexcept threads...done
>Creating forktoomuch threads...done
>Creating alloc threads...done
>Creating creat threads...done
>Creating lock threads...done
>running...printing oldest/median age/newest
>
>
>***
>*** runtime error:
>***    An array subscript was out of range.
>***    file "..\src\runtime\common\RTCollector.m3", line 418
>***
>
>
>
>***
>*** runtime error:
>***    <*ASSERT*> failed.
>***    file "..\src\thread\WIN32\ThreadWin32.m3", line 841
>***
>
>The last error repeats ad infinitum until I press CNTRL-C to abort.
>
>I'll send more info on the Windows install of Modula3 in a subsequent post.
>
>Regards,
>Randy Coleburn
>
>-----Original Message-----
>From: Mika Nystrom [mailto:mika at async.caltech.edu]=20
>Sent: Saturday, February 26, 2011 12:55 PM
>To: Coleburn, Randy
>Cc: m3devel at elegosoft.com
>Subject: Re: [M3devel] results of threadtest program on Windows7=20
>
>Hi Randy,
>
>Hm yes it looks like my Windows programming skills leave something
>to be desired.
>
>You can run the thread tester while skipping a test as follows
>
>   threadtest -tests ALL,-fork
>
>(for instance)
>
>if you just run=20
>
>   threadtest -sadfassdaf
>
>it'll print the tests that are available.
>
>As it happens, I just had to upgrade my windows 2000 system to windows 7.
>Can you give me a very brief description of what you did to install Modula-=
>3
>on this system?
>
>     Mika
>
>"Coleburn, Randy" writes:
>>--_000_D67F02DDC62F7545A6B84C285F88F3E6EE25C849atlex02srv_
>>Content-Type: text/plain; charset=3D"us-ascii"
>>Content-Transfer-Encoding: quoted-printable
>>
>>Mika:
>>
>>I've finally managed to get cm3 rebuilt on Windows 7 again.
>>
>>So, I ran your threadtest program.
>>
>>Here are the results.  Note the "..." is where I cut out a bunch of the re=
>p=3D
>>eating "ERROR FApply" messages.
>>
>>C:\cm3\Sandbox\m3-libs\m3core\tests\thread\NT386>threadtest.exe
>>Writing file...done
>>Creating read threads...done
>>Creating fork threads...done
>>Creating alloc threads...done
>>Creating lock threads...done
>>running...printing oldest/median age/newest
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>.
>>.
>>.
>>***
>>*** runtime error:
>>***    An enumeration or subrange value was out of range.
>>***    file "..\src\Main.m3", line 340
>>***
>>
>>laziest thread is 0/0/ERROR FApply: OSError.E:  ErrorCode=3D3D2: The syste=
>m c=3D
>>annot find the file specified.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>.
>>.
>>.
>>laziest thread is 0/0/ERROR FApply: OSError.E:  ErrorCode=3D3D2: The syste=
>m c=3D
>>annot find the file specified.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>.
>>.
>>.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>ERROR FApply: OSError.E:  ErrorCode=3D3D2: The system cannot find the file=
> sp=3D
>>ecified.
>>Stack trace:
>>   FP         PC      Procedure
>>---------  ---------  -------------------------------
>>0x30fbd0  0x127218a  PutStats + 0x1a3 in ..\src\Main.m3
>>0x30fcc0  0x1273825  Main_M3 + 0x11db(!) in ..\src\Main.m3
>>
>>Regards,
>>Randy Coleburn
>>
>>--_000_D67F02DDC62F7545A6B84C285F88F3E6EE25C849atlex02srv_
>>Content-Type: text/html; charset=3D"us-ascii"
>>Content-Transfer-Encoding: quoted-printable
>>



More information about the M3devel mailing list