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

Coleburn, Randy rcolebur at SCIRES.COM
Wed Mar 16 19:42:10 CET 2011


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/5aece318/attachment-0001.html>


More information about the M3devel mailing list