[M3devel] thread tests on NT386 32-bit circa 2008, not good so far

Tony Hosking hosking at cs.purdue.edu
Wed Mar 16 22:25:25 CET 2011


I don't remember how stable the collector was at that point.  Running them with @M3nogc indicates there were problems with it.
Now, what happens with the current trunk head when run with @M3nogc?

On Mar 16, 2011, at 2:42 PM, Coleburn, Randy wrote:

> I’ve gone back to a CM3 built on June 21, 2008.
> Platform is IBM ThinkPad T60, Windows XP Professional, 32-bit.
>  
> If I try to put the “@M3paranoidgc” option on the command line, the thread test program always crashes, even before it reports anything about creating the threads.
>  
> “read”, “nxread”, “tryexcept”, “fork”, “forktoomuch”, and “lock” tests seem to succeed.
>  
> “creat” and “alloc” seem to hang the program on the first iteration.  I see one “.” printed and nothing else.  Have to CTRL-C abort.
> BUT, if you run them with “@M3nogc” they will run until we run out of memory.  Tony, does this give any hint as to what may be wrong?
>  
> Output of the various runs is shown below:
>  
>  
> C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>threadtest.exe -verbose -tests read @M3paranoidgc
>  
> ***
> *** runtime error:
> ***    Attempt to reference an illegal memory location.
> ***    pc = 0x42fb8c = AllocTraced + 0x3e in ..\src\runtime\common\RTCollector.m3
> ***
>  
> ***
> *** runtime error:
> ***    <*ASSERT*> failed.
> ***    file "..\src\thread\WIN32\ThreadWin32.m3", line 845
> ***
>  
> ***
> *** runtime error:
> ***    <*ASSERT*> failed.
> ***    file "..\src\thread\WIN32\ThreadWin32.m3", line 845
> ***
>  
>  
> C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>threadtest.exe -verbose -tests alloc
> Writing file...done
> Creating alloc threads...
>    alloc=15
>    alloc=16
>    alloc=17
> done
> running...printing oldest/median age/newest
> .^C
>  
> C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>threadtest.exe -verbose -tests creat
> Writing file...done
> Creating creat threads...
>    creat=18
>    creat=19
>    creat=20
> done
> running...printing oldest/median age/newest
> .^C
>  
>  
> C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>threadtest.exe -verbose -tests creat,alloc @M3nogc
> Writing file...done
> Creating alloc threads...
>    alloc=15
>    alloc=16
>    alloc=17
> done
> Creating creat threads...
>    creat=18
>    creat=19
>    creat=20
> done
> running...printing oldest/median age/newest
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 29204 loops.
>    alloc Thread 16 completed 38868 loops.
>    alloc Thread 17 completed 29118 loops.
>    creat Thread 18 completed 111114 loops.
>    creat Thread 19 completed 114913 loops.
>    creat Thread 20 completed 108555 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 6968 loops.
>    alloc Thread 16 completed 6747 loops.
>    alloc Thread 17 completed 6331 loops.
>    creat Thread 18 completed 40626 loops.
>    creat Thread 19 completed 46526 loops.
>    creat Thread 20 completed 43511 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 4857 loops.
>    alloc Thread 16 completed 5409 loops.
>    alloc Thread 17 completed 4601 loops.
>    creat Thread 18 completed 50836 loops.
>    creat Thread 19 completed 50108 loops.
>    creat Thread 20 completed 53645 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 6249 loops.
>    alloc Thread 16 completed 7252 loops.
>    alloc Thread 17 completed 6770 loops.
>    creat Thread 18 completed 62606 loops.
>    creat Thread 19 completed 66036 loops.
>    creat Thread 20 completed 62561 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 7000 loops.
>    alloc Thread 16 completed 7559 loops.
>    alloc Thread 17 completed 7389 loops.
>    creat Thread 18 completed 66873 loops.
>    creat Thread 19 completed 81612 loops.
>    creat Thread 20 completed 62607 loops.
> ..........laziest thread is 0/0/0 (tests: alloc 0/0/0 creat 0/0/0)
>    alloc Thread 15 completed 6666 loops.
>    alloc Thread 16 completed 7579 loops.
>    alloc Thread 17 completed 6964 loops.
>    creat Thread 18 completed 89667 loops.
>    creat Thread 19 completed 90794 loops.
>    creat Thread 20 completed 90528 loops.
> .....
>  
> ***
> *** runtime error:
> ***    NEW() was unable to allocate more memory.
> ***    file "..\src\runtime\common\RTCollector.m3", line 1545
> ***
>  
> Stack trace:
>    FP         PC      Procedure
> ---------  ---------  -------------------------------
> 0x4e7fe34   0x430197  LongAlloc + 0x89 in ..\src\runtime\common\RTCollector.m3
> 0x4e7fe90   0x42fd06  AllocTraced + 0x1b8 in ..\src\runtime\common\RTCollector.m3
> 0x4e7fed4   0x427ea9  GetOpenArray + 0x80 in ..\src\runtime\common\RTAllocator.m3
> 0x4e7fef8   0x427738  AllocateOpenArray + 0x19 in ..\src\runtime\common\RTAllocator.m3
> 0x4e7ff50   0x402293  AApply + 0x109 in ..\src\Main.m3
> 0x4e7ff88   0x42a34a  RunThread + 0x1f6 in ..\src\thread\WIN32\ThreadWin32.m3
> 0x4e7ffb4   0x42a0e3  ThreadBase + 0x3a in ..\src\thread\WIN32\ThreadWin32.m3
> .........  .........  ... more frames ...
>  
>  
> C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>threadtest.exe -verbose -tests read,nxread,tryexcept,fork,forktoomuch,lock
> Writing file...done
> Creating read threads...
>    read=0
>    read=1
>    read=2
> done
> Creating nxread threads...
>    nxread=3
>    nxread=4
>    nxread=5
> done
> Creating tryexcept threads...
>    tryexcept=6
>    tryexcept=7
>    tryexcept=8
> done
> Creating fork threads...
>    fork=9
>    fork=0
>    fork=11
> done
> Creating forktoomuch threads...
>    forktoomuch=12
>    forktoomuch=13
>    forktoomuch=14
> done
> Creating lock threads...
>    lock=21
>    lock=22
>    lock=23
> done
> running...printing oldest/median age/newest
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 2 loops.
>    read Thread 1 completed 6 loops.
>    read Thread 2 completed 4 loops.
>    nxread Thread 3 completed 3 loops.
>    nxread Thread 4 completed 1 loops.
>    nxread Thread 5 completed 3 loops.
>    tryexcept Thread 6 completed 14293296 loops.
>    tryexcept Thread 7 completed 23332343 loops.
>    tryexcept Thread 8 completed 14563267 loops.
>    fork Thread 9 completed 4 loops.
>    fork Thread 10 completed 4 loops.
>    fork Thread 11 completed 5 loops.
>    forktoomuch Thread 12 completed 6 loops.
>    forktoomuch Thread 13 completed 7 loops.
>    forktoomuch Thread 14 completed 6 loops.
>    lock Thread 21 completed 1395 loops.
>    lock Thread 22 completed 1613 loops.
>    lock Thread 23 completed 2354 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 6 loops.
>    read Thread 1 completed 13 loops.
>    read Thread 2 completed 5 loops.
>    nxread Thread 3 completed 8 loops.
>    nxread Thread 4 completed 7 loops.
>    nxread Thread 5 completed 10 loops.
>    tryexcept Thread 6 completed 15350367 loops.
>    tryexcept Thread 7 completed 22864059 loops.
>    tryexcept Thread 8 completed 14516795 loops.
>    fork Thread 9 completed 6 loops.
>    fork Thread 10 completed 7 loops.
>    fork Thread 11 completed 6 loops.
>    forktoomuch Thread 12 completed 8 loops.
>    forktoomuch Thread 13 completed 9 loops.
>    forktoomuch Thread 14 completed 8 loops.
>    lock Thread 21 completed 3742 loops.
>    lock Thread 22 completed 2342 loops.
>    lock Thread 23 completed 3827 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 5 loops.
>    read Thread 1 completed 10 loops.
>    read Thread 2 completed 4 loops.
>    nxread Thread 3 completed 5 loops.
>    nxread Thread 4 completed 3 loops.
>    nxread Thread 5 completed 4 loops.
>    tryexcept Thread 6 completed 14205335 loops.
>    tryexcept Thread 7 completed 23955466 loops.
>    tryexcept Thread 8 completed 14597334 loops.
>    fork Thread 9 completed 7 loops.
>    fork Thread 10 completed 6 loops.
>    fork Thread 11 completed 7 loops.
>    forktoomuch Thread 12 completed 8 loops.
>    forktoomuch Thread 13 completed 9 loops.
>    forktoomuch Thread 14 completed 8 loops.
>    lock Thread 21 completed 1384 loops.
>    lock Thread 22 completed 3801 loops.
>    lock Thread 23 completed 4735 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 5 loops.
>    read Thread 1 completed 9 loops.
>    read Thread 2 completed 6 loops.
>    nxread Thread 3 completed 5 loops.
>    nxread Thread 4 completed 4 loops.
>    nxread Thread 5 completed 9 loops.
>    tryexcept Thread 6 completed 13962901 loops.
>    tryexcept Thread 7 completed 22999610 loops.
>    tryexcept Thread 8 completed 14123517 loops.
>    fork Thread 9 completed 6 loops.
>    fork Thread 10 completed 6 loops.
>    fork Thread 11 completed 5 loops.
>    forktoomuch Thread 12 completed 7 loops.
>    forktoomuch Thread 13 completed 8 loops.
>    forktoomuch Thread 14 completed 8 loops.
>    lock Thread 21 completed 1744 loops.
>    lock Thread 22 completed 2095 loops.
>    lock Thread 23 completed 1503 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 2 loops.
>    read Thread 1 completed 6 loops.
>    read Thread 2 completed 2 loops.
>    nxread Thread 3 completed 3 loops.
>    nxread Thread 4 completed 3 loops.
>    nxread Thread 5 completed 3 loops.
>    tryexcept Thread 6 completed 15715885 loops.
>    tryexcept Thread 7 completed 24769727 loops.
>    tryexcept Thread 8 completed 15414675 loops.
>    fork Thread 9 completed 7 loops.
>    fork Thread 10 completed 6 loops.
>    fork Thread 11 completed 7 loops.
>    forktoomuch Thread 12 completed 8 loops.
>    forktoomuch Thread 13 completed 8 loops.
>    forktoomuch Thread 14 completed 9 loops.
>    lock Thread 21 completed 1523 loops.
>    lock Thread 22 completed 1922 loops.
>    lock Thread 23 completed 1204 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 5 loops.
>    read Thread 1 completed 9 loops.
>    read Thread 2 completed 6 loops.
>    nxread Thread 3 completed 4 loops.
>    nxread Thread 4 completed 2 loops.
>    nxread Thread 5 completed 8 loops.
>    tryexcept Thread 6 completed 14688224 loops.
>    tryexcept Thread 7 completed 23710577 loops.
>    tryexcept Thread 8 completed 15355622 loops.
>    fork Thread 9 completed 6 loops.
>    fork Thread 10 completed 7 loops.
>    fork Thread 11 completed 6 loops.
>    forktoomuch Thread 12 completed 8 loops.
>    forktoomuch Thread 13 completed 9 loops.
>    forktoomuch Thread 14 completed 7 loops.
>    lock Thread 21 completed 9427 loops.
>    lock Thread 22 completed 3941 loops.
>    lock Thread 23 completed 4421 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 9 loops.
>    read Thread 1 completed 11 loops.
>    read Thread 2 completed 6 loops.
>    nxread Thread 3 completed 7 loops.
>    nxread Thread 4 completed 5 loops.
>    nxread Thread 5 completed 9 loops.
>    tryexcept Thread 6 completed 16315690 loops.
>    tryexcept Thread 7 completed 25110147 loops.
>    tryexcept Thread 8 completed 17291322 loops.
>    fork Thread 9 completed 5 loops.
>    fork Thread 10 completed 4 loops.
>    fork Thread 11 completed 5 loops.
>    forktoomuch Thread 12 completed 8 loops.
>    forktoomuch Thread 13 completed 9 loops.
>    forktoomuch Thread 14 completed 8 loops.
>    lock Thread 21 completed 1648 loops.
>    lock Thread 22 completed 1274 loops.
>    lock Thread 23 completed 975 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 2 loops.
>    read Thread 1 completed 6 loops.
>    read Thread 2 completed 3 loops.
>    nxread Thread 3 completed 7 loops.
>    nxread Thread 4 completed 4 loops.
>    nxread Thread 5 completed 7 loops.
>    tryexcept Thread 6 completed 16955552 loops.
>    tryexcept Thread 7 completed 27781696 loops.
>    tryexcept Thread 8 completed 16151561 loops.
>    fork Thread 9 completed 4 loops.
>    fork Thread 10 completed 3 loops.
>    fork Thread 11 completed 2 loops.
>    forktoomuch Thread 12 completed 7 loops.
>    forktoomuch Thread 13 completed 7 loops.
>    forktoomuch Thread 14 completed 7 loops.
>    lock Thread 21 completed 2148 loops.
>    lock Thread 22 completed 2179 loops.
>    lock Thread 23 completed 1804 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 7 loops.
>    read Thread 1 completed 5 loops.
>    read Thread 2 completed 4 loops.
>    nxread Thread 3 completed 9 loops.
>    nxread Thread 4 completed 6 loops.
>    nxread Thread 5 completed 5 loops.
>    tryexcept Thread 6 completed 14537433 loops.
>    tryexcept Thread 7 completed 24043303 loops.
>    tryexcept Thread 8 completed 14258976 loops.
>    fork Thread 9 completed 6 loops.
>    fork Thread 10 completed 7 loops.
>    fork Thread 11 completed 6 loops.
>    forktoomuch Thread 12 completed 8 loops.
>    forktoomuch Thread 13 completed 8 loops.
>    forktoomuch Thread 14 completed 8 loops.
>    lock Thread 21 completed 6504 loops.
>    lock Thread 22 completed 2290 loops.
>    lock Thread 23 completed 7696 loops.
> ..........laziest thread is 0/0/0 (tests: read 0/0/0 nxread 0/0/0 tryexcept 0/0/0 fork 0/0/0 forktoomuch 0/0/0 lock 0/0/0)
>    read Thread 0 completed 5 loops.
>    read Thread 1 completed 6 loops.
>    read Thread 2 completed 2 loops.
>    nxread Thread 3 completed 4 loops.
>    nxread Thread 4 completed 1 loops.
>    nxread Thread 5 completed 3 loops.
>    tryexcept Thread 6 completed 17349384 loops.
>    tryexcept Thread 7 completed 29845941 loops.
>    tryexcept Thread 8 completed 17792587 loops.
>    fork Thread 9 completed 5 loops.
>    fork Thread 10 completed 5 loops.
>    fork Thread 11 completed 6 loops.
>    forktoomuch Thread 12 completed 8 loops.
>    forktoomuch Thread 13 completed 9 loops.
>    forktoomuch Thread 14 completed 9 loops.
>    lock Thread 21 completed 2692 loops.
>    lock Thread 22 completed 4498 loops.
>    lock Thread 23 completed 3600 loops.
> All tests complete.  Congratulations.
>  
> C:\cm3\Sandbox\cm3\m3-libs\m3core\tests\thread\NT386>
>  
> Regards,
> Randy Coleburn
>  

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


More information about the M3devel mailing list