AW: [VM] unstability

Scott Wallace scott.wallace at squeakland.org
Fri Feb 1 02:22:34 UTC 2002


Hi, Andreas,

There was never any error raised so there was no Squeak.debug log, 
and no low-space condition was ever reached so there was never any 
lowspace-debug log either.  Instead, it appears that Squeak is 
thrashing, via some sort of oscillation rather than via recursion.

I've now reproduced the condition, interrupted it, and obtained a 
debug log by artifice, which I've pasted below below, beneath your 
reply.

In interpreting the log, ignore the call at the top to #error: from 
OrderedCollection addAllLast -- that was code I momentarily patched 
in to induce the error that gave me this log.

As you'll see, you are correct that it relates to the referencing 
mechanism in scripting.  The point of departure -- the method from 
which, once entered in these "hang" conditions, one never returns -- 
is Object.uniqueNameForReference.

Cheers,

   -- Scott


At 1:27 AM +0100 2/1/02, Andreas Raab wrote:
>Scott,
>
>>  I'm using the exact same vm as you, and an up-to-date 3.3a image,
>>  under mac os8.6; since yesterday, after the module code came in
>>  (though not necessarily *because* of the module code) my Squeak has
>>  frozen up on me, unaccountably and unpredictably, perhaps half a
>>  dozen times.  Which is around six more than than my daily average.
>>
>>  When, sometimes during such a freeze, I'm able to get cmd-dot to
>>  interrupt, I find control lost in seemingly complex infinite
>>  recursion in the modules code.
>
>But where? Can you send out the SqueakDebug.log so we can watch for
>what's happening? Also, I'm kinda thinking that _perhaps_ it's related
>to eToy scripting?! The creative use of pools in the global References
>might be a rather big problem here.
>
>Cheers,
>   - Andreas


Error: error
31 January 2002 4:45:57 pm

VM: Mac OS - Squeak3.1alpha of 7 March 2001 [latest update: #4347]
Image: Squeak3.3alpha [latest update: #4731]

OrderedCollection(Object)>>error:
	Receiver: an OrderedCollection((the Virtual Root Module) 
#(Squeak) #(Squeak Language) #(Squeak Langu...etc...
	Arguments and temporary variables:
		aString:	'error'
	Receiver's instance variables:
		array:	#((the Virtual Root Module) #(Squeak) 
#(Squeak Language) #(Squeak Langua...etc...
		firstIndex:	1
		lastIndex:	58

OrderedCollection>>addAllLast:
	Receiver: an OrderedCollection((the Virtual Root Module) 
#(Squeak) #(Squeak Language) #(Squeak Langu...etc...
	Arguments and temporary variables:
		anOrderedCollection:	#()
		each:	nil
	Receiver's instance variables:
		array:	#((the Virtual Root Module) #(Squeak) 
#(Squeak Language) #(Squeak Langua...etc...
		firstIndex:	1
		lastIndex:	58

OrderedCollection>>addAll:
	Receiver: an OrderedCollection((the Virtual Root Module) 
#(Squeak) #(Squeak Language) #(Squeak Langu...etc...
	Arguments and temporary variables:
		aCollection:	#()
	Receiver's instance variables:
		array:	#((the Virtual Root Module) #(Squeak) 
#(Squeak Language) #(Squeak Langua...etc...
		firstIndex:	1
		lastIndex:	58

[] in VirtualRootModule(Module)>>deepSubAndDeltaModules
	Arguments and temporary variables:
		deepSubAndDeltaModules:	an OrderedCollection((the 
Virtual Root Module) #(Squeak...etc...
		m:	#(Squeak Media Graphics Transformations)

--- The rest of the stack ---
Module>>deepSubmodulesDo:
[] in Module>>deepSubmodulesDo:
[] in Module>>submodulesDo:
Array(SequenceableCollection)>>do:
Module>>submodulesDo:
Module>>deepSubmodulesDo:
[] in Module>>deepSubmodulesDo:
[] in Module>>submodulesDo:
Array(SequenceableCollection)>>do:
Module>>submodulesDo:
Module>>deepSubmodulesDo:
[] in Module>>deepSubmodulesDo:
[] in Module>>submodulesDo:
Array(SequenceableCollection)>>do:
Module>>submodulesDo:
Module>>deepSubmodulesDo:
[] in VirtualRootModule(Module)>>deepSubmodulesDo:
[] in VirtualRootModule(Module)>>submodulesDo:
Array(SequenceableCollection)>>do:
VirtualRootModule(Module)>>submodulesDo:
VirtualRootModule(Module)>>deepSubmodulesDo:
VirtualRootModule(Module)>>deepSubAndDeltaModules
VirtualRootModule>>allDefinitionsFor:onlyExported:detect:
VirtualRootModule>>moduleDefining:
[] in UnscriptedPlayer(Object)>>uniqueNameForReference
Utilities class>>keyLike:satisfying:
UnscriptedPlayer(Object)>>uniqueNameForReference
UnscriptedPlayer(Player)>>uniqueNameForReference
TileMorph>>storeCodeOn:indent:
[] in TilePadMorph>>storeCodeOn:indent:
Array(SequenceableCollection)>>do:
TilePadMorph>>storeCodeOn:indent:
PhraseTileMorph>>storeCodeOn:indent:
[] in ScriptEditorMorph>>storeCodeOn:indent:
Array(SequenceableCollection)>>do:
[] in ScriptEditorMorph>>storeCodeOn:indent:
OrderedCollection>>do:
ScriptEditorMorph>>storeCodeOn:indent:
[] in ScriptEditorMorph>>codeString
String class(SequenceableCollection class)>>streamContents:
ScriptEditorMorph>>codeString
[] in ScriptEditorMorph>>methodString
String class(SequenceableCollection class)>>streamContents:
ScriptEditorMorph>>methodString
Player50(Player)>>acceptScript:for:
ScriptEditorMorph>>install
ScriptEditorMorph>>acceptDroppingMorph:event:
ScriptEditorMorph(Morph)>>handleDropMorph:
DropEvent>>sentTo:
ScriptEditorMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDropEvent:with:
MorphicEventDispatcher>>dispatchEvent:with:
ScriptEditorMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDropEvent:with:
MorphicEventDispatcher>>dispatchEvent:with:
PasteUpMorph(Morph)>>processEvent:using:
PasteUpMorph>>processEvent:using:
-- and more not shown --



More information about the Squeak-dev mailing list