[squeak-dev] seg fault on squeak6/spur while attempting to add some collections to ~700, 000 objects

Eliot Miranda eliot.miranda at gmail.com
Mon Nov 15 07:22:25 UTC 2021


Hi Timothy,

    send me a script to reproduce this and I'll take a look.

On Sun, Nov 14, 2021 at 11:00 AM gettimothy via Squeak-dev <
squeak-dev at lists.squeakfoundation.org> wrote:

> Good afternoon.
>
>
> I have ~700,000 objects in a SortedCollection and I am attempting to
> modify them.
>
> WikitextSAXTemplates templates do:[:t | t resetParameterDictionaries].
>
>
> "t" in this case invokes this:
>
>
> resetParameterDictionaries
>
> parameters := SortedCollection sortBlock:[:a :b | a key < b key].
> nestedparameters :=  SortedCollection sortBlock:[:a :b | a key < b key].
> nestedparamaterizedtemplates := SortedCollection sortBlock:[:a :b | a key
> < b key].
> nestedsimpletemplates :=  SortedCollection sortBlock:[:a :b | a key < b
> key].
>
>
>
> I get a segfault:
>
> stack page bytes 8192 available headroom 5576 minimum unused headroom 6032
>
> Segmentation fault Sun Nov 14 13:53:18 2021
>
>
> /usr/local/lib/squeak/5.0-202110010850-64bit/squeak
> Squeak VM version: 5.0-202110010850  Fri Oct  1 13:13:17 EDT 2021 clang
> [Production Spur 64-bit VM]
> Built from: CoInterpreter VMMaker.oscog-eem.3077 uuid:
> 8ad52133-62f2-4e1e-bf92-9b29ba104d62 Oct  1 2021
> With: StackToRegisterMappingCogit VMMaker.oscog-eem.3077 uuid:
> 8ad52133-62f2-4e1e-bf92-9b29ba104d62 Oct  1 2021
> Revision: VM: 202110010850 wm at tinker:usr/src/smalltalk/tmp/oscogvm
> Date: Fri Oct 1 10:50:05 2021 CommitHash: 7ede113ff
> Plugins: 202110010850 wm at tinker:usr/src/smalltalk/tmp/oscogvm
> Build host: Linux tinker 4.4.14 #2 SMP Fri Jun 24 13:38:27 CDT 2016 x86_64
> AMD Ryzen 7 2700 Eight-Core Processor AuthenticAMD GNU/Linux
> plugin path: /usr/local/bin/../lib/squeak/5.0-202110010850-64bit [default:
> /usr/local/lib/squeak/5.0-202110010850-64bit/]
>
>
> C stack backtrace & registers:
>     rax     0x21889b20 rbx      0x1000010 rcx            0x1 rdx
> 0xffffe0
>     rdi            0x1 rsi 0xffffffffffffff rbp      0x1000000 rsp
> 0x7ffd144dd5c0
>     r8      0x49751cf0 r9           (nil) r10          (nil) r11
> (nil)
>     r12          (nil) r13 0xffffffffffffff r14     0xd6700008 r15
> 0xa5662d20
>     rip       0x42b1e1
>
> */usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak(remember+0x1b1)[0x42b1e1]
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x41a703]
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x41cbbe]
> /lib64/libpthread.so.0(+0x113b0)[0x7f8a33d223b0]
>
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak(remember+0x1b1)[0x42b1e1]
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x47863b]
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x4549af]
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x4780aa]
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x44b54c]
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x454560]
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak[0x42ea3b]
>
> /usr/local/bin/../lib/squeak/5.0-202110010850-64bit/squeak(ceStackOverflow+0xaf)[0x43464f]
> [0x155c52c]
> [0x0]
>
>
> Smalltalk stack dump:
> 0x7ffd144fb410 M SortedCollection class>sortBlock: 0x21c1b850: a(n)
> SortedCollection
> 0x7ffd144fb448 M WikitextSAXTemplate>resetParameterDictionaries
> 0x733597e0: a(n) WikitextSAXTemplate
> 0x7ffd144fb478 M [] in UndefinedObject>resetParameterDictionaries
> 0x218898e0: a(n) UndefinedObject
> 0x7ffd144fb4b8 M SortedCollection(OrderedCollection)>do: 0x2b4de230: a(n)
> SortedCollection
> 0x7ffd144fb4f0 M UndefinedObject>DoIt 0x218898e0: a(n) UndefinedObject
> 0x7ffd144fb548 I Compiler>evaluateCue:ifFail: 0x5a00b18: a(n) Compiler
> 0x7ffd144fb5a0 I Compiler>evaluateCue:ifFail:logged: 0x5a00b18: a(n)
> Compiler
> 0x7ffd144fb5f8 I
> Compiler>evaluate:in:to:environment:notifying:ifFail:logged: 0x5a00b18:
> a(n) Compiler
> 0x7ffd144fb670 M [] in SmalltalkEditor>evaluateSelectionAndDo: 0x80f9d5e8:
> a(n) SmalltalkEditor
> 0x7ffd144fb6b0 M FullBlockClosure(BlockClosure)>on:do: 0x5a00e28: a(n)
> FullBlockClosure
> 0x7ffd144fb718 I SmalltalkEditor(TextEditor)>evaluateSelectionAndDo:
> 0x80f9d5e8: a(n) SmalltalkEditor
> 0x7ffd144f91e8 I SmalltalkEditor(TextEditor)>evaluateSelection 0x80f9d5e8:
> a(n) SmalltalkEditor
> 0x7ffd144f9228 I SmalltalkEditor(TextEditor)>doIt 0x80f9d5e8: a(n)
> SmalltalkEditor
> 0x7ffd144f9268 I SmalltalkEditor(TextEditor)>doIt: 0x80f9d5e8: a(n)
> SmalltalkEditor
> 0x7ffd144f92c0 I SmalltalkEditor(TextEditor)>dispatchOnKeyboardEvent:
> 0x80f9d5e8: a(n) SmalltalkEditor
> 0x7ffd144f9308 I SmalltalkEditor(TextEditor)>keyStroke: 0x80f9d5e8: a(n)
> SmalltalkEditor
> 0x7ffd144f9348 M [] in TextMorphForEditView>keyStroke: 0x2b3f9640: a(n)
> TextMorphForEditView
> 0x7ffd144f9398 M
> TextMorphForEditView(TextMorph)>handleInteraction:fromEvent: 0x2b3f9640:
> a(n) TextMorphForEditView
> 0x7ffd144f93d8 M TextMorphForEditView>handleInteraction:fromEvent:
> 0x2b3f9640: a(n) TextMorphForEditView
> 0x7ffd144f9438 I [] in TextMorphForEditView>keyStroke: 0x2b3f9640: a(n)
> TextMorphForEditView
> 0x7ffd144f9478 I StandardToolSet
> class>codeCompletionAround:textMorph:keyStroke: 0x21c2f3c8: a(n)
> StandardToolSet
> 0x7ffd144f94d0 I ToolSet class>codeCompletionAround:textMorph:keyStroke:
> 0x21c282d0: a(n) ToolSet
> 0x7ffd144f9528 I TextMorphForEditView(TextMorph)>keyStroke: 0x2b3f9640:
> a(n) TextMorphForEditView
> 0x7ffd144f9578 I TextMorphForEditView>keyStroke: 0x2b3f9640: a(n)
> TextMorphForEditView
> 0x7ffd144f95c8 I TextMorphForEditView(Morph)>handleKeystroke: 0x2b3f9640:
> a(n) TextMorphForEditView
> 0x7ffd144f9618 I TextMorphForEditView(TextMorph)>handleKeystroke:
> 0x2b3f9640: a(n) TextMorphForEditView
> 0x7ffd144f9650 M KeyboardEvent>sentTo: 0x5a00598: a(n) KeyboardEvent
> 0x7ffd144f9690 M TextMorphForEditView(Morph)>handleEvent: 0x2b3f9640: a(n)
> TextMorphForEditView
> 0x7ffd144f96c8 M TextMorphForEditView(Morph)>handleFocusEvent: 0x2b3f9640:
> a(n) TextMorphForEditView
> 0x7ffd144f9710 M MorphicEventDispatcher>doHandlingForFocusEvent:with:
> 0x59ffd40: a(n) MorphicEventDispatcher
> 0x7ffd144f71e0 M MorphicEventDispatcher>dispatchFocusEvent:with:
> 0x59ffd40: a(n) MorphicEventDispatcher
> 0x7ffd144f7220 M TextMorphForEditView(Morph)>processFocusEvent:using:
> 0x2b3f9640: a(n) TextMorphForEditView
> 0x7ffd144f7260 M TextMorphForEditView(Morph)>processFocusEvent:
> 0x2b3f9640: a(n) TextMorphForEditView
> 0x7ffd144f72b0 M [] in HandMorph>sendFocusEvent:to:clear: 0x22679bd8: a(n)
> HandMorph
> 0x7ffd144f72f8 M [] in ActiveEventVariable class>value:during: 0x22492740:
> a(n) ActiveEventVariable
> 0x7ffd144f7338 M FullBlockClosure(BlockClosure)>ensure: 0x59ffe50: a(n)
> FullBlockClosure
> 0x7ffd144f7388 M ActiveEventVariable class(DynamicVariable
> class)>value:during: 0x22492740: a(n) ActiveEventVariable
> 0x7ffd144f73d8 M [] in ActiveEventVariable class>value:during: 0x22492740:
> a(n) ActiveEventVariable
> 0x7ffd144f7418 M FullBlockClosure(BlockClosure)>ensure: 0x59fff98: a(n)
> FullBlockClosure
> 0x7ffd144f7458 M ActiveEventVariable class>value:during: 0x22492740: a(n)
> ActiveEventVariable
> 0x7ffd144f7498 M KeyboardEvent(MorphicEvent)>becomeActiveDuring:
> 0x17abd10: a(n) KeyboardEvent
> 0x7ffd144f74e8 M [] in HandMorph>sendFocusEvent:to:clear: 0x22679bd8: a(n)
> HandMorph
> 0x7ffd144f7530 M [] in ActiveHandVariable class>value:during: 0x224927e0:
> a(n) ActiveHandVariable
> 0x7ffd144f7570 M FullBlockClosure(BlockClosure)>ensure: 0x5a001b8: a(n)
> FullBlockClosure
> 0x7ffd144f75c0 M ActiveHandVariable class(DynamicVariable
> class)>value:during: 0x224927e0: a(n) ActiveHandVariable
> 0x7ffd144f7610 M [] in ActiveHandVariable class>value:during: 0x224927e0:
> a(n) ActiveHandVariable
> 0x7ffd144f7650 M FullBlockClosure(BlockClosure)>ensure: 0x5a00300: a(n)
> FullBlockClosure
> 0x7ffd144f7690 M ActiveHandVariable class>value:during: 0x224927e0: a(n)
> ActiveHandVariable
> 0x7ffd144f76d0 M HandMorph>becomeActiveDuring: 0x22679bd8: a(n) HandMorph
> 0x7ffd144f7720 M [] in HandMorph>sendFocusEvent:to:clear: 0x22679bd8: a(n)
> HandMorph
> 0x7ffd144ed040 M [] in ActiveWorldVariable class>value:during: 0x22492848:
> a(n) ActiveWorldVariable
> 0x7ffd144ed080 M FullBlockClosure(BlockClosure)>ensure: 0x59fecf0: a(n)
> FullBlockClosure
> 0x7ffd144ed0d0 M ActiveWorldVariable class(DynamicVariable
> class)>value:during: 0x22492848: a(n) ActiveWorldVariable
> 0x7ffd144ed120 M [] in ActiveWorldVariable class>value:during: 0x22492848:
> a(n) ActiveWorldVariable
> 0x7ffd144ed160 M FullBlockClosure(BlockClosure)>ensure: 0x59fee38: a(n)
> FullBlockClosure
> 0x7ffd144ed1a0 M ActiveWorldVariable class>value:during: 0x22492848: a(n)
> ActiveWorldVariable
> 0x7ffd144ed1e0 M PasteUpMorph>becomeActiveDuring: 0x224eece0: a(n)
> PasteUpMorph
> 0x7ffd144ed228 M HandMorph>sendFocusEvent:to:clear: 0x22679bd8: a(n)
> HandMorph
> 0x7ffd144ed280 M HandMorph>sendEvent:focus:clear: 0x22679bd8: a(n)
> HandMorph
> 0x7ffd144ed2c8 M HandMorph>sendKeyboardEvent: 0x22679bd8: a(n) HandMorph
> 0x7ffd144ed308 M HandMorph>handleEvent: 0x22679bd8: a(n) HandMorph
> 0x7ffd144ed358 M HandMorph>processEvents 0x22679bd8: a(n) HandMorph
> 0x7ffd144ed398 M [] in WorldState>doOneCycleNowFor: 0x224d3340: a(n)
> WorldState
> 0x7ffd144ed3e0 M [] in ActiveHandVariable class>value:during: 0x224927e0:
> a(n) ActiveHandVariable
> 0x7ffd144ed420 M FullBlockClosure(BlockClosure)>ensure: 0x59ff1a8: a(n)
> FullBlockClosure
> 0x7ffd144ed470 M ActiveHandVariable class(DynamicVariable
> class)>value:during: 0x224927e0: a(n) ActiveHandVariable
> 0x7ffd144ed4c0 M [] in ActiveHandVariable class>value:during: 0x224927e0:
> a(n) ActiveHandVariable
> 0x7ffd144ed500 M FullBlockClosure(BlockClosure)>ensure: 0x59ff2f0: a(n)
> FullBlockClosure
> 0x7ffd144ed540 M ActiveHandVariable class>value:during: 0x224927e0: a(n)
> ActiveHandVariable
> 0x7ffd144ed580 M HandMorph>becomeActiveDuring: 0x22679bd8: a(n) HandMorph
> 0x7ffd144ed5c0 M [] in WorldState>doOneCycleNowFor: 0x224d3340: a(n)
> WorldState
> 0x7ffd144ed608 M Array(SequenceableCollection)>do: 0x218ae380: a(n) Array
> 0x7ffd144ed640 M WorldState>handsDo: 0x224d3340: a(n) WorldState
> 0x7ffd144ed680 M WorldState>doOneCycleNowFor: 0x224d3340: a(n) WorldState
> 0x7ffd144ed6b8 M WorldState>doOneCycleFor: 0x224d3340: a(n) WorldState
> 0x7ffd144ed6f0 M PasteUpMorph>doOneCycle 0x224eece0: a(n) PasteUpMorph
> 0x7ffd144ed720 M [] in MorphicProject>spawnNewProcess 0x21fbf2a8: a(n)
> MorphicProject
>         0x774013c0 s [] in FullBlockClosure(BlockClosure)>newProcess
>
> Most recent primitives
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:put:
> max:
> max:
> max:
> max:
> max:
> max:
> max:
> max:
> max:
> max:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> bitLengthAt:
> bitLengthAt:
> bitLengthAt:
> maxCode
> maxCode
> maxCode
> maxCode
> maxCode
> maxCode
> maxCode
> maxCode
> maxCode
> maxCode
> maxCode
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> value:value:
> at:
> at:
> value:value:
> value:value:
> at:
> value:value:
> value:value:
> value:value:
> value:value:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> at:
> bitPosition
> bitPosition
> bitPosition
> basicNew
> size
> on:from:to:
> on:from:to:
> privateSendBlock:with:with:with:
> **PrimitiveFailure**
> **PrimitiveFailure**
> at:
> nextBits:put:
> bitOr:
> bitOr:
> byteAt:put:
> byteAt:put:
> codeAt:
> nextBits:put:
> next:putAll:startingAt:
> next:putAll:startingAt:
> bitXor:
> commit
> commit
> commit
> commit
> commit
> size
> size
> size
> size
> size
> perform:
> createMethod:class:header:
> at:put:
> at:put:
> at:put:
> at:put:
> at:put:
> shallowCopy
> at:
> at:put:
> at:
> at:put:
> at:
> at:put:
> at:
> at:put:
> at:
> at:put:
> at:
> at:put:
> at:
> at:put:
> basicNew
> withArgs:executeMethod:
> value:
> utcMicrosecondClock
> suspend
> resume
> primSignal:atUTCMicroseconds:
> wait
> value
> wait
> signal
> utcMicrosecondClock
> primSignal:atUTCMicroseconds:
> wait
> signal
> primSocketConnectionStatus:
> **PrimitiveFailure**
> **PrimitiveFailure**
> value
> primSocketConnectionStatus:
> **PrimitiveFailure**
> value
> primSocketConnectionStatus:
> **PrimitiveFailure**
> valueWithArguments:
> value
> primitiveEnterCriticalSection
> valueNoContextSwitch
> identityHash
> at:
> primitiveExitCriticalSection
> isValid
> **PrimitiveFailure**
> isValid
> primSocketConnectionStatus:
> **PrimitiveFailure**
> wait
> valueNoContextSwitch
> specialObjectsArray
> value:
> identityHash
> instVarsInclude:
> instVarsInclude:
> instVarsInclude:
> signal
> wait
> value
> identityHash
> fixCollisionsFrom:
> \\
> \\
> scanFor:
> signal
> basicNew
> wait
> signal
> utcMicrosecondClock
> primSignal:atUTCMicroseconds:
> wait
> signal
> wait
> **IncrementalGC**
>
> stack page bytes 8192 available headroom 5576 minimum unused headroom 6032
>
> (Segmentation fault)
>
>
> I checked the SortedCollection containing the objects for nil values with
> both:
>
>
> |s|
> s := Set new.
> self collect:[:each | s add:(each class name)].
> s inspect.
>
> and:
>
> self select:[:each | each isNil].
>
> I only got one element in the Set and an empty collection in the isNil
> test.
>
>
> I will be trying a different tac by fully initializing those objects as
> they are created and added to the SortedCollection that holds them.
>
> cordially,
>
> t
>
>
>

-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20211114/e734797e/attachment-0001.html>


More information about the Squeak-dev mailing list