Hi, this question is mainly for Eliot I guess...
I have regular failures with a 32 bits squeak.stack.spur The VM crashes in garbage collect when running all tests.
When i simulate, I've got an assert: failure in
Spur32BitMMLESimulator>>is: oop onObjStack: objStack | index nextPage | self assert: (self numSlotsOfAny: objStack) = ObjStackPageSlots.
0 = 4092 fails...
Does it mean the image got corrupted?
More exactly this happens from: ... processWeakSurvivor: fireFinalization queueMourner: in self deny: (self is: anEphemeronOrWeakArray onObjStack: mournQueue).
2016-03-19 1:36 GMT+01:00 Nicolas Cellier < nicolas.cellier.aka.nice@gmail.com>:
Hi, this question is mainly for Eliot I guess...
I have regular failures with a 32 bits squeak.stack.spur The VM crashes in garbage collect when running all tests.
When i simulate, I've got an assert: failure in
Spur32BitMMLESimulator>>is: oop onObjStack: objStack | index nextPage | self assert: (self numSlotsOfAny: objStack) = ObjStackPageSlots.
0 = 4092 fails...
Does it mean the image got corrupted?
On Mar 18, 2016, at 5:46 PM, Nicolas Cellier nicolas.cellier.aka.nice@gmail.com wrote:
More exactly this happens from: ... processWeakSurvivor: fireFinalization queueMourner: in self deny: (self is: anEphemeronOrWeakArray onObjStack: mournQueue).
If mournQueue is not initialized, and that's expected, then the assert needs to read
self deny: (mournQueue ~= 0 and: [self is: anEphemeronOrWeakArray onObjStack: mournQueue]).
Check where the mournQueue is initialized. I may have written the code so that there is no mournQueue (mournQueue = 0) until the new finalization mechanism is enabled. If so, the assert needs updating.
If I write the code so that there's always a mournQueue (mournQueue is initialized in or from initializeObjectMemory:) then the asset is correct and mournQueue got zapped by mistake.
2016-03-19 1:36 GMT+01:00 Nicolas Cellier nicolas.cellier.aka.nice@gmail.com:
Hi, this question is mainly for Eliot I guess...
I have regular failures with a 32 bits squeak.stack.spur The VM crashes in garbage collect when running all tests.
When i simulate, I've got an assert: failure in
Spur32BitMMLESimulator>>is: oop onObjStack: objStack | index nextPage | self assert: (self numSlotsOfAny: objStack) = ObjStackPageSlots.
0 = 4092 fails...
Does it mean the image got corrupted?
follow-up: I had time to check again... The mournQueue is initialized.
The image works pretty well with following VM (i.e. I can run all tests for example):
Image ----- /Users/nicolas/Smalltalk/Squeak/trunk/trunk46-spur.image Squeak4.5 latest update: #15726 Current Change Set: Unnamed1 Image format 6521 (32 bit)
Virtual Machine --------------- /Users/nicolas/Smalltalk/Squeak/trunk/CogSpur.app/Contents/MacOS/Squeak Croquet Closure Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.1441] Squeak Cog Spur 5.0.3427 Mac OS X built on Aug 22 2015 04:44:22 UTC Compiler: 4.2.1 (Apple Inc. build 5666) (dot 3) platform sources revision VM: r3427 http://www.squeakvm.org/svn/squeak/branches/Cog Date: 2015-08-21 20:39:38 -0700 Plugins: r3415 http://squeakvm.org/svn/squeak/trunk/platforms/Cross/plugins CoInterpreter VMMaker.oscog-eem.1441 uuid: c41d605b-7d2e-4ecc-95e1-b295119106a7 Aug 22 2015 StackToRegisterMappingCogit VMMaker.oscog-eem.1436 uuid: 9d2442c4-2066-4ffd-a215-e7e2b6cb8eed Aug 22 2015
When I run it with latest trunk VM (compiled by myself) I get random crashes. The crash happens at startup with assert version of squeak.stack.spur. The VM stack dump is consistent with what I get in simulator (see attached)
From here, I don't know how to debug further...
2016-03-19 3:15 GMT+01:00 Eliot Miranda eliot.miranda@gmail.com:
On Mar 18, 2016, at 5:46 PM, Nicolas Cellier < nicolas.cellier.aka.nice@gmail.com> wrote:
More exactly this happens from: ... processWeakSurvivor: fireFinalization queueMourner: in self deny: (self is: anEphemeronOrWeakArray onObjStack: mournQueue).
If mournQueue is not initialized, and that's expected, then the assert needs to read
self deny: (mournQueue ~= 0 and: [self is: anEphemeronOrWeakArray
onObjStack: mournQueue]).
Check where the mournQueue is initialized. I may have written the code so that there is no mournQueue (mournQueue = 0) until the new finalization mechanism is enabled. If so, the assert needs updating.
If I write the code so that there's always a mournQueue (mournQueue is initialized in or from initializeObjectMemory:) then the asset is correct and mournQueue got zapped by mistake.
2016-03-19 1:36 GMT+01:00 Nicolas Cellier < nicolas.cellier.aka.nice@gmail.com>:
Hi, this question is mainly for Eliot I guess...
I have regular failures with a 32 bits squeak.stack.spur The VM crashes in garbage collect when running all tests.
When i simulate, I've got an assert: failure in
Spur32BitMMLESimulator>>is: oop onObjStack: objStack | index nextPage | self assert: (self numSlotsOfAny: objStack) = ObjStackPageSlots.
0 = 4092 fails...
Does it mean the image got corrupted?
vm-dev@lists.squeakfoundation.org