project denial of service on tree browser edge case
Lauren Pullen <[email protected]> Sat, 11 Jul 2026 14:38:44 -0600
| Newsgroups | gmane.comp.lang.smalltalk.squeak.general |
|---|---|
| Message-ID | <[email protected]> |
Hi List, I tried to reproduce this, but was unable to. I somehow got morphic to flood the project with debugger windows. I'm honestly not sure what happened... I think I saw a filter appear and the list empty out right before the flood happened. I was able to close the project with some difficulty; luckily I lost nothing but the time trying to make it happen again. Because I can't reproduce the issue, should we leave it at extremely unlucky? Squeak-dev mailing list -- [email protected] To unsubscribe send an email to [email protected]
SqueakDebug.log
(text/plain, 17.2 KB)
MessageNotUnderstood: UndefinedObject>>categories
11 July 2026 1:59:11.590596 pm
VM: Mac OS - Smalltalk
Image: Squeak6.1rc1 [latest update: #23890]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/lauren/program/opensmalltalk-vm/image
Trusted Dir /Users/lauren/program/opensmalltalk-vm/image/secure
Untrusted Dir /Users/lauren/program/opensmalltalk-vm/image/My Squeak
UndefinedObject(Object)>>doesNotUnderstand: #categories
Receiver: nil
Arguments and temporary variables:
aMessage: categories
exception: MessageNotUnderstood: UndefinedObject>>categories
resumeValue: nil
Receiver's instance variables:
nil
TreeBrowser>>messageCategoryLabel:
Receiver: a TreeBrowser
Arguments and temporary variables:
category: #'compiled methods'
label: #'compiled methods'
Receiver's instance variables:
dependents: nil
contents: nil
currentCompiledMethod: nil
contentsSymbol: #source
multiWindowState: nil
environment: Smalltalk
systemOrganizer: ('Kernel-Classes' BasicClassOrganizer Behavior Categorizer Class...etc...
classOrganizer: nil
metaClassOrganizer: nil
editSelection: #newClass
metaClassIndicated: false
selectedSystemCategory: #'VMMaker-Multithreading'
selectedClassName: nil
selectedMessageName: nil
selectedMessageCategoryName: nil
classDefinition: 'StackInterpreterPrimitives subclass: #CoInterpreter
instance...etc...
metaClassDefinition: 'CoInterpreter class
instanceVariableNames: '''''
parentCategories: a Dictionary(size 674)
lastSystemCategoryList: #(#'Kernel-Classes' #'Kernel-Exceptions' #'Kernel-Excep...etc...
lastClassList: {AtomicValue . CoInterpreterMT . CogThreadManager . CogVMOwnerLog...etc...
lastMessageCategoryList: #()
isHierarchyMode: nil
classForHierarchy: nil
lastClassListIndentForHierarchy: nil
extraClasses: #()
TreeBrowser>>messageCategoryHelpAt:
Receiver: a TreeBrowser
Arguments and temporary variables:
category: #'compiled methods'
Receiver's instance variables:
dependents: nil
contents: nil
currentCompiledMethod: nil
contentsSymbol: #source
multiWindowState: nil
environment: Smalltalk
systemOrganizer: ('Kernel-Classes' BasicClassOrganizer Behavior Categorizer Class...etc...
classOrganizer: nil
metaClassOrganizer: nil
editSelection: #newClass
metaClassIndicated: false
selectedSystemCategory: #'VMMaker-Multithreading'
selectedClassName: nil
selectedMessageName: nil
selectedMessageCategoryName: nil
classDefinition: 'StackInterpreterPrimitives subclass: #CoInterpreter
instance...etc...
metaClassDefinition: 'CoInterpreter class
instanceVariableNames: '''''
parentCategories: a Dictionary(size 674)
lastSystemCategoryList: #(#'Kernel-Classes' #'Kernel-Exceptions' #'Kernel-Excep...etc...
lastClassList: {AtomicValue . CoInterpreterMT . CogThreadManager . CogVMOwnerLog...etc...
lastMessageCategoryList: #()
isHierarchyMode: nil
classForHierarchy: nil
lastClassListIndentForHierarchy: nil
extraClasses: #()
PluggableTreeMorph>>balloonTextForNode:
Receiver: a PluggableTreeMorph<messageCategoryList>(1645175)
Arguments and temporary variables:
node: a PluggableTreeItemNode
Receiver's instance variables:
bounds: 825@635 corner: 1137@958
owner: a PluggableSystemWindow<System Browser>(858216)
submorphs: {a TransformMorph(3544969)}
fullBounds: 825@635 corner: 1137@958
color: Color white
extension: a MorphExtension (1435395) [externalName = messageCategoryList ] [o...etc...
borderWidth: 2
borderColor: (Color r: 0.509 g: 0.6 b: 0.419)
model: a TreeBrowser
slotName: nil
open: false
scrollBar: a ScrollBar(1968904)
scroller: a TransformMorph(3544969)
retractableScrollBar: false
scrollBarOnLeft: true
getMenuSelector: #messageCategoryMenu:
getMenuTitleSelector: nil
hasFocus: true
hScrollBar: a ScrollBar(2015571)
hScrollBarPolicy: #never
vScrollBarPolicy: #whenNeeded
scrollBarThickness: 28
selectedMorph: nil
selectedMorphIndex: nil
hoveredMorph: an IndentingListItemMorph(298211)#'compiled methods'
getListSelector: nil
keystrokeActionSelector: #messageCategoryListKey:from:
autoDeselect: true
autoExpand: false
autoExpandSelector: nil
columns: nil
columnsCache: #()
sortingSelector: nil
getSelectionSelector: #messageCategoryChild
setSelectionSelector: #messageCategoryChild:
potentialDropMorph: nil
lineColor: Color veryVeryLightGray
font: a TTCFont(BitstreamVeraSansForSqueak Roman 10.5pt 192ppi 28px)
textColor: Color black
rootWrappers: #()
selectedWrapper: nil
getRootsSelector: #messageCategoryRoots
getChildrenSelector: #messageCategoryChildren:
hasChildrenSelector: #messageCategoryHasChildren:
getLabelSelector: #messageCategoryLabel:
getIconSelector: nil
getSelectedPathSelector: #messageCategoryPath
setSelectedPathSelector: nil
setSelectedParentSelector: nil
getHelpSelector: #messageCategoryHelpAt:
dropItemSelector: #drop:onMessageCategory:copy:
wantsDropSelector: #wantsToDrop:type:source:morph:onMessageCategory:
dragItemSelector: #dragFromMessageCategory:
dragTypeSelector: #dragTypeForMessageCategory:
nodeClass: nil
lastKeystrokeTime: 0
lastKeystrokes: ''
dragStartedSelector: nil
doubleClickSelector: nil
findText: nil
findQueue: nil
filterColumnIndex: nil
filterMode: #all
searchMode: #depthFirst
priorSelection: nil
PluggableTreeItemNode>>balloonText
Receiver: a PluggableTreeItemNode
Arguments and temporary variables:
Receiver's instance variables:
item: #'compiled methods'
model: a PluggableTreeMorph<messageCategoryList>(1645175)
parent: nil
index: nil
IndentingListItemMorph>>balloonText
Receiver: an IndentingListItemMorph(298211)#'compiled methods'
Arguments and temporary variables:
Receiver's instance variables:
bounds: 0@272 corner: 9999@306
owner: nil
submorphs: #()
fullBounds: 0@272 corner: 9999@306
color: Color black
extension: a MorphExtension (3918691) [other: (hoverColor -> (TranslucentColor...etc...
font: a TTCFont(BitstreamVeraSansForSqueak Roman 10.5pt 192ppi 28px)
emphasis: nil
contents: #'compiled methods'
hasFocus: false
indentLevel: 0
canExpand: false
isExpanded: false
complexContents: a PluggableTreeItemNode
firstChild: nil
container: a PluggableTreeMorph<messageCategoryList>(1645175)
nextSibling: an IndentingListItemMorph(2939068)#'control primitives'
icon: nil
backgroundColor: nil
filterOffsets: #()
IndentingListItemMorph(Morph)>>wantsBalloon
Receiver: an IndentingListItemMorph(298211)#'compiled methods'
Arguments and temporary variables:
Receiver's instance variables:
bounds: 0@272 corner: 9999@306
owner: nil
submorphs: #()
fullBounds: 0@272 corner: 9999@306
color: Color black
extension: a MorphExtension (3918691) [other: (hoverColor -> (TranslucentColor...etc...
font: a TTCFont(BitstreamVeraSansForSqueak Roman 10.5pt 192ppi 28px)
emphasis: nil
contents: #'compiled methods'
hasFocus: false
indentLevel: 0
canExpand: false
isExpanded: false
complexContents: a PluggableTreeItemNode
firstChild: nil
container: a PluggableTreeMorph<messageCategoryList>(1645175)
nextSibling: an IndentingListItemMorph(2939068)#'control primitives'
icon: nil
backgroundColor: nil
filterOffsets: #()
HandMorph>>removePendingBalloonFor:
Receiver: a HandMorph(3663638)
Arguments and temporary variables:
aMorph: an IndentingListItemMorph(298211)#'compiled methods'
Receiver's instance variables:
bounds: 51@11 corner: 83@43
owner: a PasteUpMorph(3052915) [world]
submorphs: #()
fullBounds: 51@11 corner: 83@43
color: Color blue
extension: a MorphExtension (3138192) [other: (borderStyle -> a BorderStyle) (...etc...
mouseFocus: nil
keyboardFocus: nil
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(3663638))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
targetOffset: 1240@598
lastMouseEvent: [51@11 51@11 mouseMove 35622852]
lastKeyDownEvent: [1259@662 keyDown (55) 35616417]
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 35622852 51 11 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: a MacUnicodeInputInterpreter
externalDropMorph: nil
IndentingListItemMorph(Morph)>>handleMouseLeave:
Receiver: an IndentingListItemMorph(298211)#'compiled methods'
Arguments and temporary variables:
anEvent: [51@11 mouseLeave nil]
Receiver's instance variables:
bounds: 0@272 corner: 9999@306
owner: nil
submorphs: #()
fullBounds: 0@272 corner: 9999@306
color: Color black
extension: a MorphExtension (3918691) [other: (hoverColor -> (TranslucentColor...etc...
font: a TTCFont(BitstreamVeraSansForSqueak Roman 10.5pt 192ppi 28px)
emphasis: nil
contents: #'compiled methods'
hasFocus: false
indentLevel: 0
canExpand: false
isExpanded: false
complexContents: a PluggableTreeItemNode
firstChild: nil
container: a PluggableTreeMorph<messageCategoryList>(1645175)
nextSibling: an IndentingListItemMorph(2939068)#'control primitives'
icon: nil
backgroundColor: nil
filterOffsets: #()
MouseEvent>>sentTo:
Receiver: [51@11 mouseLeave nil]
Arguments and temporary variables:
anObject: an IndentingListItemMorph(298211)#'compiled methods'
Receiver's instance variables:
timeStamp: nil
source: a HandMorph(3663638)
type: #mouseLeave
buttons: 0
position: 51@11
handler: nil
wasHandled: false
wasIgnored: false
IndentingListItemMorph(Morph)>>handleEvent:
Receiver: an IndentingListItemMorph(298211)#'compiled methods'
Arguments and temporary variables:
anEvent: [51@11 mouseLeave nil]
filteredEvent: [51@11 mouseLeave nil]
Receiver's instance variables:
bounds: 0@272 corner: 9999@306
owner: nil
submorphs: #()
fullBounds: 0@272 corner: 9999@306
color: Color black
extension: a MorphExtension (3918691) [other: (hoverColor -> (TranslucentColor...etc...
font: a TTCFont(BitstreamVeraSansForSqueak Roman 10.5pt 192ppi 28px)
emphasis: nil
contents: #'compiled methods'
hasFocus: false
indentLevel: 0
canExpand: false
isExpanded: false
complexContents: a PluggableTreeItemNode
firstChild: nil
container: a PluggableTreeMorph<messageCategoryList>(1645175)
nextSibling: an IndentingListItemMorph(2939068)#'control primitives'
icon: nil
backgroundColor: nil
filterOffsets: #()
[] in MouseOverHandler>>processMouseOver:
Receiver: a MouseOverHandler
Arguments and temporary variables:
anEvent: [51@11 51@11 mouseMove 35622852]
hand: a HandMorph(3663638)
focus: nil
localEvt: [51@11 mouseLeave nil]
evt: [51@11 mouseLeave nil]
m: an IndentingListItemMorph(298211)#'compiled methods'
Receiver's instance variables:
mouseOverMorphs: {a PluggableSystemWindow<System Browser: MPI>(57769) . a PasteUpMorph...etc...
enteredMorphs: a WriteStream
overMorphs: a WriteStream
leftMorphs: {a PluggableSystemWindow<System Browser: MPI>(57769) . a MenuItemMorph...etc...
Array(SequenceableCollection)>>do:
Receiver: {a PluggableSystemWindow<System Browser: MPI>(57769) . a MenuItemMorph(3660802)'Close all ...etc...
Arguments and temporary variables:
aBlock: [closure] in MouseOverHandler>>processMouseOver:
index: 25
indexLimiT: 27
Receiver's instance variables:
{a PluggableSystemWindow<System Browser: MPI>(57769) . a MenuItemMorph(3660802)'Close all ...etc...
MouseOverHandler>>processMouseOver:
Receiver: a MouseOverHandler
Arguments and temporary variables:
anEvent: [51@11 51@11 mouseMove 35622852]
hand: a HandMorph(3663638)
focus: nil
localEvt: [51@11 mouseLeave nil]
evt: [51@11 mouseLeave nil]
Receiver's instance variables:
mouseOverMorphs: {a PluggableSystemWindow<System Browser: MPI>(57769) . a PasteUpMorph...etc...
enteredMorphs: a WriteStream
overMorphs: a WriteStream
leftMorphs: {a PluggableSystemWindow<System Browser: MPI>(57769) . a MenuItemMorph...etc...
HandMorph>>processEvents
Receiver: a HandMorph(3663638)
Arguments and temporary variables:
evtBuf: nil
hadAny: false
evt: nil
Receiver's instance variables:
bounds: 51@11 corner: 83@43
owner: a PasteUpMorph(3052915) [world]
submorphs: #()
fullBounds: 51@11 corner: 83@43
color: Color blue
extension: a MorphExtension (3138192) [other: (borderStyle -> a BorderStyle) (...etc...
mouseFocus: nil
keyboardFocus: nil
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
eventCaptureFilters: nil
mouseCaptureFilters: nil
keyboardCaptureFilters: a WeakArray(a HandMorph(3663638))
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
targetOffset: 1240@598
lastMouseEvent: [51@11 51@11 mouseMove 35622852]
lastKeyDownEvent: [1259@662 keyDown (55) 35616417]
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 35622852 51 11 0 0 1 1)
genieGestureProcessor: nil
keyboardInterpreter: a MacUnicodeInputInterpreter
externalDropMorph: nil
[] in [] in WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(3052915) [world]
capturingGesture: false
hand: a HandMorph(3663638)
Receiver's instance variables:
hands: {a HandMorph(3663638)}
viewBox: 0@0 corner: 2704@1628
canvas: a FormCanvas on: Form(2704x1628x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a ClockMorph(3634769)'13:59:09')(a ClockMorph...etc...
lastStepTime: 3961252749707
lastStepMessage: nil
lastCycleTime: 3961252751589
commandHistory: a CommandHistory
alarms: a MorphicAlarmQueue
lastAlarmTime: 3961252749707
remoteServer: nil
multiCanvas: nil
interCycleDelay: a Delay(20 msecs)
[] in ActiveHandVariable class(DynamicVariable class)>>value:during:
Receiver: ActiveHandVariable
Arguments and temporary variables:
anObject: a HandMorph(3663638)
aBlock: [closure] in [] in WorldState>>doOneCycleNowFor:
p: a Process(67114) in nil
oldValue: nil
outerScopeWasDynamic: false
Receiver's instance variables:
superclass: DynamicVariable
methodDict: a MethodDictionary()
format: 0
instanceVariables: nil
organization: ('as yet unclassified')
subclasses: nil
name: #ActiveHandVariable
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'Morphic-Worlds'
hash: 2651829
FullBlockClosure(BlockClosure)>>ensure:
Receiver: [closure] in ActiveHandVariable class(DynamicVariable class)>>value:during:
Arguments and temporary variables:
aBlock: [closure] in ActiveHandVariable class(DynamicVariable class)>>value:during:...etc...
completionStatus: nil
returnValue: nil
Receiver's instance variables:
outerContext: ActiveHandVariable class(DynamicVariable class)>>value:during:
startpcOrMethod: ([] in DynamicVariable class>>#value:during: "a CompiledBlock(...etc...
numArgs: 0
receiver: ActiveHandVariable
ActiveHandVariable class(DynamicVariable class)>>value:during:
Receiver: ActiveHandVariable
Arguments and temporary variables:
anObject: a HandMorph(3663638)
aBlock: [closure] in [] in WorldState>>doOneCycleNowFor:
p: a Process(67114) in nil
oldValue: nil
outerScopeWasDynamic: false
Receiver's instance variables:
superclass: DynamicVariable
methodDict: a MethodDictionary()
format: 0
instanceVariables: nil
organization: ('as yet unclassified')
subclasses: nil
name: #ActiveHandVariable
classPool: nil
sharedPools: nil
environment: Smalltalk
category: #'Morphic-Worlds'
hash: 2651829
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #categories
TreeBrowser>>messageCategoryLabel:
TreeBrowser>>messageCategoryHelpAt:
PluggableTreeMorph>>balloonTextForNode:
PluggableTreeItemNode>>balloonText
IndentingListItemMorph>>balloonText
IndentingListItemMorph(Morph)>>wantsBalloon
HandMorph>>removePendingBalloonFor:
IndentingListItemMorph(Morph)>>handleMouseLeave:
MouseEvent>>sentTo:
IndentingListItemMorph(Morph)>>handleEvent:
[] in MouseOverHandler>>processMouseOver:
Array(SequenceableCollection)>>do:
MouseOverHandler>>processMouseOver:
HandMorph>>processEvents
[] in [] in WorldState>>doOneCycleNowFor:
[] in ActiveHandVariable class(DynamicVariable class)>>value:during:
FullBlockClosure(BlockClosure)>>ensure:
ActiveHandVariable class(DynamicVariable class)>>value:during:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[] in ActiveHandVariable class>>value:during:
FullBlockClosure(BlockClosure)>>ensure:
ActiveHandVariable class>>value:during:
HandMorph>>becomeActiveDuring:
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in MorphicProject>>spawnNewProcess
[] in FullBlockClosure(BlockClosure)>>newProcess