<div dir="ltr"><div><div><div><div><div>Just for the fun, I did a system tracing...<br><br>strace ../../../products/sqcogspurlinux/lib/squeak/5.0-201711262336/squeak TravisCI.image <a href="http://test.st">test.st</a>  > tmp.log 2>tmp.trace<br></div><div>Then interrupted and quit the image</div><div><br></div>It's amazing how many time we stat/open the changes file...<br>grep changes tmp.trace | grep open | wc<br>   3027   15226  511279<br><br></div>sometimes, we open many .changes in a row and the file index keep increasing, like:<br></div><div><br></div><div>lstat64("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", {st_mode=S_IFREG|0644, st_size=10701044, ...}) = 0<br>open("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", O_RDONLY|O_LARGEFILE) = 206<br>lstat64("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", {st_mode=S_IFREG|0644, st_size=10701077, ...}) = 0<br>open("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", O_RDONLY|O_LARGEFILE) = 208<br>lstat64("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", {st_mode=S_IFREG|0644, st_size=10701103, ...}) = 0<br>open("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", O_RDONLY|O_LARGEFILE) = 10<br>lstat64("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", {st_mode=S_IFREG|0644, st_size=10701816, ...}) = 0<br>open("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", O_RDONLY|O_LARGEFILE) = 12<br>lstat64("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", {st_mode=S_IFREG|0644, st_size=10701900, ...}) = 0<br>open("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_07_37/TravisCI.changes", O_RDONLY|O_LARGEFILE) = 14<br><br></div>This is the famous case when we can exhaust the maximum number of opened files...<br></div>I don't remembered if we installed a workaround at image side?<br></div>But obviously we do not behave so well with respect to external resources...<br><div><div><div><div><br></div><div>Then I see patterns where we read .changes a few times every 2ms... like this:</div><div><br></div><div>open("/media/psf/Home/Smalltalk/OpenSmalltalk/opensmalltalk-vm/smalltalkCI-master/_builds/2017_12_04_22_<br>07_37/TravisCI.changes", O_RDONLY|O_LARGEFILE) = 9<br>fcntl64(9, F_GETFL)                     = 0x8000 (flags O_RDONLY|O_LARGEFILE)<br>fstat64(9, {st_mode=S_IFREG|0644, st_size=10762271, ...}) = 0<br>fstat64(9, {st_mode=S_IFREG|0644, st_size=10762271, ...}) = 0<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=234913}, NULL) = 0<br>sigreturn({mask=[]})                    = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2079) = 2079<br>_llseek(9, 0, [0], SEEK_SET)            = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2042) = 2042<br>read(9, ": '' prior: 44316480!\roverride ^"..., 4096) = 37<br>read(9, "", 4096)                       = 0<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=237225}, NULL) = 0<br>sigreturn({mask=[]})                    = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=239103}, NULL) = 0<br>sigreturn({mask=[]})                    = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2078) = 2078<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=241003}, NULL) = 0<br>sigreturn({mask=[]})                    = 2078<br>_llseek(9, 10762270, [10762270], SEEK_SET) = 0<br>read(9, "!", 4096)                      = 1<br>read(9, "", 4096)                       = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2078) = 2078<br>read(9, "!", 4096)                      = 1<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=243052}, NULL) = 0<br>sigreturn({mask=[]})                    = 1<br>read(9, "", 4096)                       = 0<br>recvmsg(4, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)<br>_newselect(5, [4], [], [4], {tv_sec=0, tv_usec=0}) = 0 (Timeout)<br>read(9, "", 4096)                       = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>read(9, "", 4096)                       = 0<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=245075}, NULL) = 0<br>sigreturn({mask=[]})                    = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2079) = 2079<br>read(9, "", 4096)                       = 0<br>read(9, "", 4096)                       = 0<br>read(9, "", 4096)                       = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=247097}, NULL) = 0<br></div><div>sigreturn({mask=[]})                    = 0<br>read(9, "", 4096)                       = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2079) = 2079<br>read(9, "", 4096)                       = 0<br>read(9, "", 4096)                       = 0<br>read(9, "", 4096)                       = 0<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=248983}, NULL) = 0<br>sigreturn({mask=[]})                    = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>read(9, "", 4096)                       = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2079) = 2079<br>read(9, "", 4096)                       = 0<br>read(9, "", 4096)                       = 0<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=251019}, NULL) = 0<br>sigreturn({mask=[]})                    = 0<br>read(9, "", 4096)                       = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>read(9, "", 4096)                       = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2079) = 2079<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422430, tv_usec=253017}, NULL) = 0<br>sigreturn({mask=[]})                    = 2079<br>...</div><div><br></div><div>It looks like we are looping like this during 103 seconds (I let sufficient time before pressing ctrl+alt+.)<br></div><div><br></div><div>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422533, tv_usec=555087}, NULL) = 0<br>sigreturn({mask=[]})                    = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2079) = 2079<br>read(9, "", 4096)                       = 0<br>read(9, "", 4096)                       = 0<br>read(9, "", 4096)                       = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422533, tv_usec=556985}, NULL) = 0<br>sigreturn({mask=[]})                    = 0<br>_llseek(9, 0, [10762271], SEEK_CUR)     = 0<br>read(9, "", 4096)                       = 0<br>_llseek(9, 10760192, [10760192], SEEK_SET) = 0<br>read(9, "ceVariableNames: ''\r\tclassVariab"..., 2079) = 2079<br>read(9, "", 4096)                       = 0<br>read(9, "", 4096)                       = 0<br>--- SIGALRM {si_signo=SIGALRM, si_code=SI_KERNEL} ---<br>gettimeofday({tv_sec=1512422533, tv_usec=559009}, NULL) = 0<br>sigreturn({mask=[]})                    = 0<br>gettimeofday({tv_sec=1512422533, tv_usec=559419}, NULL) = 0<br>gettimeofday({tv_sec=1512422533, tv_usec=559628}, NULL) = 0<br>gettimeofday({tv_sec=1512422533, tv_usec=559830}, NULL) = 0</div><div><br></div><div>It's not the good way to find the bug, bt it's interesting...<br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-12-04 21:58 GMT+01:00 Nicolas Cellier <span dir="ltr"><<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div><div><div>Hi Fabio,<br></div>no, I opened the test image --headfull and it is blocked in tests:<br><br>MCMockPackageInfo(PackageInfo) changeRecordForOverriddenMetho<wbr>d:<br><br></div>with parameter: a MethodReference MCMethodDefinitionTest >> #override<br><br></div>This is invoked from MCMethodDefinition>>tearDown.<br><br></div>It is blocked in this infinite loop:<br><br>        [file position < (position-1)]  "then pick it up from the front"<br>            whileTrue: [chunk := file nextChunk].<br><br></div>here file position is 0, and inst. var. readLimit is 0 too...<br></div>So nextChunk invariably return '' and the position does not advance.<br><br></div>Why is readLimit 0???<br></div>The file is TravisCI.changes and I can open and read it normally in the FileList.<br></div>The problem comes from SourceFiles which already has an incorrect readLimit set to zero (image attached)<br><br></div>It remains to discover how this ever happened, and why only in linux...<br><div><div><div><div><div><div><div><div><div><div><div><div class="gmail_extra"><br><div class="gmail_quote">2017-12-04 7:35 GMT+01:00 Fabio Niephaus <span dir="ltr"><<a href="mailto:lists@fniephaus.com" target="_blank">lists@fniephaus.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <br><div>Hi Nicolas,<br>Is it possible that this was related to this:<br><a href="http://forum.world.st/Squeak-trunk-updates-fail-td5059208.html" target="_blank">http://forum.world.st/Squeak-t<wbr>runk-updates-fail-td5059208.ht<wbr>ml</a><br><br>Best,<br>Fabio</div><div><div class="h5"><div><br><div class="gmail_quote"><div>On Sun, 3 Dec 2017 at 11:08 am, Nicolas Cellier <<a href="mailto:nicolas.cellier.aka.nice@gmail.com" target="_blank">nicolas.cellier.aka.nice@gmai<wbr>l.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> <div><div><div><div><div><div><div><div><div><div><div>Hi,<br></div>for quite some times the travis build for linux32x86 times out during the .travis_test.sh phase.<br><br></div>It's very hard for me to build a 32bits vm from 64bits ubuntu (14.xx). So I've tried with a 32bits VM (debian9), changed to opensmalltalk root directory of my working copy, and<br><br></div>export ARCH="linux32x86"<br>export FLAVOR="squeak.cog.spur"<br>export TRAVIS_BUILD_DIR=`pwd`<br></div>export TRAVIS_OS_NAME=linux<br></div>./.travis_build.sh<br></div>./.travis_test.sh<br><br></div>The tests effectively seem to block with 100% CPU.<br><br></div>So I performed a few stack dump via kill -USR1, and it seems that tests are stuck in a very long operation, here is one of the samples:<br><br>All Smalltalk process stacks (active first):<br>Process  0x192cda8 priority 40<br>0xbfc67d94 M MultiByteFileStream(StandardFi<wbr>leStream)>basicNext 0x129bdc8: a(n) MultiByteFileStream<br>0xbfc67db0 M UTF8TextConverter>skipSeparato<wbr>rsAndPeekNextFrom: 0x129bd58: a(n) UTF8TextConverter<br>0xbfc67dd0 M UTF8TextConverter>parseLangTag<wbr>For:fromStream: 0x129bd58: a(n) UTF8TextConverter<br>0xbfc67df0 M UTF8TextConverter>nextChunkFro<wbr>mStream: 0x129bd58: a(n) UTF8TextConverter<br>0xbfc67e0c M MultiByteFileStream>nextChunk 0x129bdc8: a(n) MultiByteFileStream<br>0xbfc67e5c M [] in MCMockPackageInfo(PackageInfo)<wbr>>changeRecordsForMethod:do: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc67e7c M BlockClosure>ensure: 0x129bf80: a(n) BlockClosure<br>0xbfc74bb0 M MCMockPackageInfo(PackageInfo)<wbr>>changeRecordsForMethod:do: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74bd0 M MCMockPackageInfo(PackageInfo)<wbr>>changeRecordForOverriddenMeth<wbr>od: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74bec M MCMockPackageInfo(PackageInfo)<wbr>>isOverrideOfYourMethod: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74c0c M [] in MCMockPackageInfo(PackageInfo)<wbr>>overriddenMethodsDo: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74c30 M [] in MCMockPackageInfo(PackageInfo)<wbr>>methodsInCategory:ofClass:do: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74c54 M Array(SequenceableCollection)><wbr>do: 0x129d178: a(n) Array<br>0xbfc74c70 M MCMockPackageInfo(PackageInfo)<wbr>>methodsInCategory:ofClass:do: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74c9c M [] in MCMockPackageInfo(PackageInfo)<wbr>>overriddenMethodsInClass:do: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74cbc M [] in MCMockPackageInfo(PackageInfo)<wbr>>overrideCategoriesForClass:do<wbr>: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74ce0 M Array(SequenceableCollection)><wbr>do: 0x129aa48: a(n) Array<br>0xbfc74cfc M MCMockPackageInfo(PackageInfo)<wbr>>overrideCategoriesForClass:do<wbr>: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74d1c M MCMockPackageInfo(PackageInfo)<wbr>>overriddenMethodsInClass:do: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74d40 M [] in MCMockPackageInfo(PackageInfo)<wbr>>allOverriddenMethodsDo: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74d60 M [] in MCTestCase class(Behavior)>allSubclassesD<wbr>o: 0x1b38d88: a(n) MCTestCase class<br>0xbfc74d84 M Array(SequenceableCollection)><wbr>do: 0x1ae4c70: a(n) Array<br>0xbfc74da0 M MCTestCase class(Class)>subclassesDo: 0x1b38d88: a(n) MCTestCase class<br>0xbfc74dbc M MCTestCase class(Behavior)>allSubclassesD<wbr>o: 0x1b38d88: a(n) MCTestCase class<br>0xbfc74ddc M [] in TestCase class(Behavior)>allSubclassesD<wbr>o: 0x1b35988: a(n) TestCase class<br>0xbfc74e00 M Array(SequenceableCollection)><wbr>do: 0x27fa510: a(n) Array<br>0xbfc74e1c M TestCase class(Class)>subclassesDo: 0x1b35988: a(n) TestCase class<br>0xbfc74e38 M TestCase class(Behavior)>allSubclassesD<wbr>o: 0x1b35988: a(n) TestCase class<br>0xbfc74e58 M [] in Object class(Behavior)>allSubclassesD<wbr>o: 0x1a25910: a(n) Object class<br>0xbfc74e7c M Array(SequenceableCollection)><wbr>do: 0x1297d50: a(n) Array<br>0xbfc6bb9c M Object class(Class)>subclassesDo: 0x1a25910: a(n) Object class<br>0xbfc6bbb8 M Object class(Behavior)>allSubclassesD<wbr>o: 0x1a25910: a(n) Object class<br>0xbfc6bbd8 M [] in ProtoObject class(Behavior)>allSubclassesD<wbr>o: 0x1a25a98: a(n) ProtoObject class<br>0xbfc6bbfc M Array(SequenceableCollection)><wbr>do: 0x4334a28: a(n) Array<br>0xbfc6bc18 M ProtoObject class(Class)>subclassesDo: 0x1a25a98: a(n) ProtoObject class<br>0xbfc6bc34 M ProtoObject class(Behavior)>allSubclassesD<wbr>o: 0x1a25a98: a(n) ProtoObject class<br>0xbfc6bc58 I ProtoObject class(Behavior)>withAllSubclas<wbr>sesDo: 0x1a25a98: a(n) ProtoObject class<br>0xbfc6bc74 M MCMockPackageInfo(PackageInfo)<wbr>>allOverriddenMethodsDo: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc6bc90 M MCMockPackageInfo(PackageInfo)<wbr>>overriddenMethodsDo: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc6bcac M [] in MCMockPackageInfo(PackageInfo)<wbr>>overriddenMethods 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc6bcd0 M Array class(SequenceableCollection class)>new:streamContents: 0x1a124a8: a(n) Array class<br>0xbfc6bcf0 M Array class(SequenceableCollection class)>streamContents: 0x1a124a8: a(n) Array class<br>0xbfc6bd0c M MCMockPackageInfo(PackageInfo)<wbr>>overriddenMethods 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc6bd2c M [] in MCPackage>snapshot 0x129ca58: a(n) MCPackage<br>0xbfc6bd48 M BlockClosure>on:do: 0x129cac8: a(n) BlockClosure<br>0xbfc6bd6c M CurrentReadOnlySourceFiles class>cacheDuring: 0x1baa718: a(n) CurrentReadOnlySourceFiles class<br>0xbfc6bd94 M MCPackage>snapshot 0x129ca58: a(n) MCPackage<br>0xbfc6bdb4 M MCPackageLoader>updatePackage:<wbr>withSnapshot: 0x129cc40: a(n) MCPackageLoader<br>0xbfc6bde0 I MCPackageLoader class>updatePackage:withSnapsh<wbr>ot: 0x1c00d30: a(n) MCPackageLoader class<br>0xbfc6be08 I MCSnapshot>updatePackage: 0x4148418: a(n) MCSnapshot<br>0xbfc6be2c I MCMethodDefinitionTest(MCTestC<wbr>ase)>restoreMocks 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc6be44 M MCMethodDefinitionTest>tearDow<wbr>n 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc6be5c M [] in MCMethodDefinitionTest(TestCas<wbr>e)>runCase 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc6be7c M MethodContext(ContextPart)>res<wbr>ume: 0x129c2e0: a(n) MethodContext<br>0xbfc68c2c M BlockClosure>ensure: 0x129c128: a(n) BlockClosure<br>0xbfc68c48 M MCMethodDefinitionTest(TestCas<wbr>e)>runCase 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc68c60 M SCISqueakTestRunner(SCITestRun<wbr>ner)>basicRunCase: 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68c80 M [] in SCISqueakTestRunner(SCITestRun<wbr>ner)>runCase: 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68c9c M BlockClosure>on:do: 0x129c218: a(n) BlockClosure<br>0xbfc68cc4 M [] in SCISqueakTestRunner(SCITestRun<wbr>ner)>runCase: 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68ce0 M BlockClosure>on:do: 0x129c340: a(n) BlockClosure<br>0xbfc68d08 M [] in SCISqueakTestRunner(SCITestRun<wbr>ner)>runCase: 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68d24 M Time class>millisecondsToRun: 0x1a10700: a(n) Time class<br>0xbfc68d40 M SmalltalkCI class>timeToRun: 0x3afeee8: a(n) SmalltalkCI class<br>0xbfc68d64 M SCISqueakTestRunner(SCITestRun<wbr>ner)>runCase: 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68d80 M MCMethodDefinitionTest(TestCas<wbr>e)>run: 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc68d9c M [] in SCISqueakTestRunner(SCITestRun<wbr>ner)>runAll 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68dbc M OrderedCollection>do: 0x401f7f0: a(n) OrderedCollection<br>0xbfc68de0 I SCISqueakTestRunner(SCITestRun<wbr>ner)>runAll 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68df8 M [] in SCISqueakTestRunner(SCITestRun<wbr>ner)>run 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68e1c I Time class>millisecondsToRun: 0x1a10700: a(n) Time class<br>0xbfc68e40 I SmalltalkCI class>timeToRun: 0x3afeee8: a(n) SmalltalkCI class<br>0xbfc68e5c M [] in SCISqueakTestRunner(SCITestRun<wbr>ner)>run 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68e7c M BlockClosure>ensure: 0x4050b80: a(n) BlockClosure<br> 0x4050c10 s SCISqueakTestRunner(SCITestRun<wbr>ner)>run<br> 0x41492c8 s SCISqueakTestRunner class(SCITestRunner class)>runSuite:spec:<br> 0x401e3f0 s SCISqueakTestRunner class(SCITestRunner class)>runClasses:spec:<br> 0x4040da0 s SCISqueakTestRunner class(SCITestRunner class)>runSpec:<br> 0x4148790 s SmalltalkCISqueak(SmalltalkCI)<wbr>>runTests<br> 0x414a428 s [] in SmalltalkCISqueak(SmalltalkCI)<wbr>>basicTest<br> 0x3bab9b0 s SmalltalkCISqueak class(SmalltalkCI class)>run:spec:in:<br> 0x401e4c0 s [] in SmalltalkCISqueak(SmalltalkCI)<wbr>>basicTest<br> 0x4040e00 s [] in SmalltalkCISqueak class(SmalltalkCI class)>fold:on:block:<br> 0x41487f0 s Time class>millisecondsToRun:<br> 0x414a488 s SmalltalkCI class>timeToRun:<br> 0x401e560 s SmalltalkCISqueak class(SmalltalkCI class)>fold:on:block:<br> 0x4040e60 s SmalltalkCISqueak class(SmalltalkCI class)>fold:block:<br> 0x4148850 s SmalltalkCISqueak class(SmalltalkCI class)>stage:id:block:<br> 0x401e5c0 s SmalltalkCISqueak(SmalltalkCI)<wbr>>basicTest<br> 0x401e620 s [] in SmalltalkCISqueak(SmalltalkCI)<wbr>>test<br> 0x401da40 s BlockClosure>on:do:<br> 0x401dae0 s [] in SmalltalkCISqueak(SmalltalkCI)<wbr>>test<br> 0x4040bc0 s [] in SmalltalkCISqueak class(SmalltalkCI class)>withBuildStatusReportin<wbr>gDo:<br> 0x401db70 s BlockClosure>on:do:<br> 0x401dbe8 s SmalltalkCISqueak class(SmalltalkCI class)>withBuildStatusReportin<wbr>gDo:<br> 0x401dc48 s SmalltalkCISqueak(SmalltalkCI)<wbr>>test<br> 0x4040c20 s SmalltalkCI class>test:projectDirectory:<br> 0x41486d0 s SmalltalkCI class>test:<br> 0x401dd48 s UndefinedObject>DoIt<br> 0x401de88 s Compiler>evaluateCue:ifFail:<br> 0x401df20 s Compiler>evaluateCue:ifFail:lo<wbr>gged:<br> 0x4040c80 s Compiler>evaluate:in:to:notify<wbr>ing:ifFail:logged:<br> 0x401e178 s Compiler class>evaluate:for:notifying:l<wbr>ogged:<br> 0x4040ce0 s Compiler class>evaluate:for:logged:<br> 0x4148730 s Compiler class>evaluate:logged:<br> 0x414a3c8 s [] in ReadStream(PositionableStream)<wbr>>fileInAnnouncing:<br> 0x401e1f0 s BlockClosure>on:do:<br> 0x401e268 s [] in ReadStream(PositionableStream)<wbr>>fileInAnnouncing:<br> 0x4040d40 s [] in MorphicUIManager>displayProgre<wbr>ss:at:from:to:during:<br> 0x401e2e8 s BlockClosure>on:do:<br> 0x401e360 s [] in MorphicUIManager>displayProgre<wbr>ss:at:from:to:during:<br> 0x401d240 s BlockClosure>ensure:<br> 0x401d2f0 s MorphicUIManager>displayProgre<wbr>ss:at:from:to:during:<br> 0x40409e0 s ProgressInitiationException>de<wbr>faultResumeValue<br> 0x41484f0 s ProgressInitiationException(Ex<wbr>ception)>resume<br> 0x414a248 s ProgressInitiationException>de<wbr>faultAction<br> 0x3bab890 s UndefinedObject>handleSignal:<br> 0x401d3b8 s ProgressInitiationException(Ex<wbr>ception)>signal<br> 0x401d418 s ProgressInitiationException>di<wbr>splay:at:from:to:during:<br> 0x4040a40 s ProgressInitiationException class>display:at:from:to:durin<wbr>g:<br> 0x4148550 s ByteString(String)>displayProg<wbr>ressAt:from:to:during:<br> 0x414a2a8 s ByteString(String)>displayProg<wbr>ressFrom:to:during:<br> 0x401d4a0 s ReadStream(PositionableStream)<wbr>>fileInAnnouncing:<br> 0x4040aa0 s ReadStream(PositionableStream)<wbr>>fileIn<br> 0x41485b0 s CodeLoader>installSourceFile:<br> 0x414a308 s [] in CodeLoader>installSourceFiles<br> 0x3bab8f0 s Array(SequenceableCollection)><wbr>do:<br> 0x401d780 s CodeLoader>installSourceFiles<br> 0x401d930 s ProjectLauncher>startUpAfterLo<wbr>gin<br> 0x4040b00 s ProjectLauncher>startUp<br> 0x4148610 s [] in AutoStart class>startUp:<br> 0x414a368 s WorldState>runStepMethodsIn:<br> 0x3bab950 s PasteUpMorph>runStepMethods<br> 0x401d9c8 s WorldState>doOneCycleNowFor:<br> 0x4040b60 s WorldState>doOneCycleFor:<br> 0x4148670 s PasteUpMorph>doOneCycle<br> 0x1e09b00 s [] in MorphicProject>spawnNewProcess<br> 0x1ad4dd8 s [] in BlockClosure>newProcess<br><br></div>It' like MCMethodDefinitionTest>tearDow<wbr>n never finish (or is very very long) because MCMockPackageInfo(PackageInfo)<wbr>>overriddenMethods is very very long.<br><br></div>I don't know what is different on linux32x86 VM compared to OSX, but it would be interesting to understand what's going on exactly...<br></div>
</blockquote></div></div>
<br></div></div></blockquote></div><br></div></div></div></div></div></div></div></div></div></div></div></div></div>
</blockquote></div><br></div>