<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) changeRecordForOverriddenMethod:<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-<wbr>trunk-updates-fail-td5059208.<wbr>html</a><br><br>Best,<br>Fabio</div><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@<wbr>gmail.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(<wbr>StandardFileStream)>basicNext 0x129bdc8: a(n) MultiByteFileStream<br>0xbfc67db0 M UTF8TextConverter><wbr>skipSeparatorsAndPeekNextFrom: 0x129bd58: a(n) UTF8TextConverter<br>0xbfc67dd0 M UTF8TextConverter><wbr>parseLangTagFor:fromStream: 0x129bd58: a(n) UTF8TextConverter<br>0xbfc67df0 M UTF8TextConverter><wbr>nextChunkFromStream: 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>><wbr>changeRecordForOverriddenMetho<wbr>d: 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:<wbr>do: 0x1a265d0: a(n) MCMockPackageInfo<br>0xbfc74ce0 M Array(SequenceableCollection)><wbr>do: 0x129aa48: a(n) Array<br>0xbfc74cfc M MCMockPackageInfo(PackageInfo)<wbr>>overrideCategoriesForClass:<wbr>do: 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)><wbr>allSubclassesDo: 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)><wbr>allSubclassesDo: 0x1b38d88: a(n) MCTestCase class<br>0xbfc74ddc M [] in TestCase class(Behavior)><wbr>allSubclassesDo: 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)><wbr>allSubclassesDo: 0x1b35988: a(n) TestCase class<br>0xbfc74e58 M [] in Object class(Behavior)><wbr>allSubclassesDo: 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)><wbr>allSubclassesDo: 0x1a25910: a(n) Object class<br>0xbfc6bbd8 M [] in ProtoObject class(Behavior)><wbr>allSubclassesDo: 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)><wbr>allSubclassesDo: 0x1a25a98: a(n) ProtoObject class<br>0xbfc6bc58 I ProtoObject class(Behavior)><wbr>withAllSubclassesDo: 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:<wbr>withSnapshot: 0x1c00d30: a(n) MCPackageLoader class<br>0xbfc6be08 I MCSnapshot>updatePackage: 0x4148418: a(n) MCSnapshot<br>0xbfc6be2c I MCMethodDefinitionTest(<wbr>MCTestCase)>restoreMocks 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc6be44 M MCMethodDefinitionTest><wbr>tearDown 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc6be5c M [] in MCMethodDefinitionTest(<wbr>TestCase)>runCase 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc6be7c M MethodContext(ContextPart)><wbr>resume: 0x129c2e0: a(n) MethodContext<br>0xbfc68c2c M BlockClosure>ensure: 0x129c128: a(n) BlockClosure<br>0xbfc68c48 M MCMethodDefinitionTest(<wbr>TestCase)>runCase 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc68c60 M SCISqueakTestRunner(<wbr>SCITestRunner)>basicRunCase: 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68c80 M [] in SCISqueakTestRunner(<wbr>SCITestRunner)>runCase: 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68c9c M BlockClosure>on:do: 0x129c218: a(n) BlockClosure<br>0xbfc68cc4 M [] in SCISqueakTestRunner(<wbr>SCITestRunner)>runCase: 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68ce0 M BlockClosure>on:do: 0x129c340: a(n) BlockClosure<br>0xbfc68d08 M [] in SCISqueakTestRunner(<wbr>SCITestRunner)>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(<wbr>SCITestRunner)>runCase: 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68d80 M MCMethodDefinitionTest(<wbr>TestCase)>run: 0x4049e20: a(n) MCMethodDefinitionTest<br>0xbfc68d9c M [] in SCISqueakTestRunner(<wbr>SCITestRunner)>runAll 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68dbc M OrderedCollection>do: 0x401f7f0: a(n) OrderedCollection<br>0xbfc68de0 I SCISqueakTestRunner(<wbr>SCITestRunner)>runAll 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68df8 M [] in SCISqueakTestRunner(<wbr>SCITestRunner)>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(<wbr>SCITestRunner)>run 0x4050a68: a(n) SCISqueakTestRunner<br>0xbfc68e7c M BlockClosure>ensure: 0x4050b80: a(n) BlockClosure<br> 0x4050c10 s SCISqueakTestRunner(<wbr>SCITestRunner)>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)><wbr>withBuildStatusReportingDo:<br> 0x401db70 s BlockClosure>on:do:<br> 0x401dbe8 s SmalltalkCISqueak class(SmalltalkCI class)><wbr>withBuildStatusReportingDo:<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:<wbr>logged:<br> 0x4040c80 s Compiler>evaluate:in:to:<wbr>notifying:ifFail:logged:<br> 0x401e178 s Compiler class>evaluate:for:notifying:<wbr>logged:<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><wbr>displayProgress:at:from:to:<wbr>during:<br> 0x401e2e8 s BlockClosure>on:do:<br> 0x401e360 s [] in MorphicUIManager><wbr>displayProgress:at:from:to:<wbr>during:<br> 0x401d240 s BlockClosure>ensure:<br> 0x401d2f0 s MorphicUIManager><wbr>displayProgress:at:from:to:<wbr>during:<br> 0x40409e0 s ProgressInitiationException><wbr>defaultResumeValue<br> 0x41484f0 s ProgressInitiationException(<wbr>Exception)>resume<br> 0x414a248 s ProgressInitiationException><wbr>defaultAction<br> 0x3bab890 s UndefinedObject>handleSignal:<br> 0x401d3b8 s ProgressInitiationException(<wbr>Exception)>signal<br> 0x401d418 s ProgressInitiationException><wbr>display:at:from:to:during:<br> 0x4040a40 s ProgressInitiationException class>display:at:from:to:<wbr>during:<br> 0x4148550 s ByteString(String)><wbr>displayProgressAt:from:to:<wbr>during:<br> 0x414a2a8 s ByteString(String)><wbr>displayProgressFrom: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><wbr>startUpAfterLogin<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><wbr>tearDown 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></blockquote></div><br></div></div></div></div></div></div></div></div></div></div></div></div></div>