Thank you Bruce!! And apologies for the inconvenience. Fix is on its way.
On Wed, Feb 14, 2024 at 2:37 AM Bruce O'Neel bruce.oneel@pckswarms.ch wrote:
Hi,
Thanks very much!
I find the following crash
When I run this command:
WebClient httpHead: 'https://www.google.ch'
I see the following crash below on a x8664 system:
DISTRIB_ID=Ubuntu DISTRIB_RELEASE=22.04 DISTRIB_CODENAME=jammy DISTRIB_DESCRIPTION="Ubuntu Jammy Jellyfish"
If I apply the following patch the crash goes away.
diff --git a/src/plugins/SqueakSSL/SqueakSSL.c b/src/plugins/SqueakSSL/SqueakSSL.c index 05dc5c0a6..d8f54e5ae 100644 --- a/src/plugins/SqueakSSL/SqueakSSL.c +++ b/src/plugins/SqueakSSL/SqueakSSL.c @@ -247,9 +247,9 @@ primitiveConnect(void) dstPtr = firstIndexableField(dstOop); srcPtr = (srcPtr + start) - 1; dstLen = byteSizeOf(dstOop);
vmHandle = disownVM(DisownVMForThreading);
//vmHandle = disownVM(DisownVMForThreading); result = sqConnectSSL(handle, srcPtr, srcLen, dstPtr, dstLen);
ownVM(vmHandle);
//ownVM(vmHandle); if (!wasSrcPinned) { unpinObject(srcOop); }
Sorry, I realize that patch is quite trivial and just removes the added feature.
I also see a crash running the same command on Raspberry PIs running the latest OS based on Debian 12.4.
Thanks
cheers bruce
================ x86-64 Linux crash ================ Segmentation fault Wed Feb 14 11:28:29 2024
/home/edoneel/local/squeak/squeak Squeak VM version: 5.0-202402132331 Wed Feb 14 10:44:19 CET 2024 gcc 11 [Production Spur 64-bit x86_64 VM] Built from: CoInterpreter VMMaker.oscog-eem.3349 uuid: 09001547-129a-4b6b-9fed-ccdd6790c8f4 Feb 14 2024 With: StackToRegisterMappingCogit VMMaker.oscog-eem.3347 uuid: 7e4df21b-b561-434b-b2d3-45e8806d7875 Feb 14 2024 Revision: VM: 202402132331 edoneel@water:tmp/opensmalltalk-vm Date: Tue Feb 13 15:31:15 2024 CommitHash: c1cd03540 Plugins: 202402132331 edoneel@water:tmp/opensmalltalk-vm Build host: Linux water 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux plugin path: /home/edoneel/local/squeak/ [default: /home/edoneel/local/squeak/]
C stack backtrace & registers: rax 0x100018e01010316 rbx 0x1 rcx 0x6 rdx 0x7ffef3d73ec0 rdi 0x1 rsi (nil) rbp 0x7ffef3d4c490 rsp 0x7ffef3d4c3d0 r8 0x55f7557898e0 r9 0xfffffffffffffff9 r10 (nil) r11 0x7f86b762ea70 r12 0x7ffef3d73f30 r13 0x55f75733ddcb r14 0x55f7540737e0 r15 0x7ffef3d73ed0 rip 0x55f75404469f */home/edoneel/local/squeak/squeak(+0x3869f)[0x55f75404469f] /home/edoneel/local/squeak/squeak(+0xc7155)[0x55f7540d3155] /home/edoneel/local/squeak/squeak(+0xc750d)[0x55f7540d350d] /lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f86ba03f520] /home/edoneel/local/squeak/squeak(+0x3869f)[0x55f75404469f] /home/edoneel/local/squeak/squeak(interpret+0x72b)[0x55f75408459b] /home/edoneel/local/squeak/squeak(interpret+0x78b3)[0x55f75408b723] [0x55f754d19e8e] [0x0]
Smalltalk stack dump: 0x7ffef3d73ec0 I [] in UndefinedObject>(nil) 0x55f7557898e0: a(n) UndefinedObject 0x7ffef3d73f30 I SqueakSSL>connect:from:to:into: 0x55f7555bc060: a(n) SqueakSSL 0x7ffef3d73f90 M [] in SecureSocketStream>sslConnectTo: 0x55f7555b3108: a(n) SecureSocketStream 0x7ffef3d73fd0 M FullBlockClosure(BlockClosure)>ifCurtailed: 0x55f7555bc248: a(n) FullBlockClosure 0x7ffef3d74028 I SecureSocketStream>sslConnectTo: 0x55f7555b3108: a(n) SecureSocketStream 0x7ffef3d74070 I WebClient>sslConnect:to: 0x55f75552d0b0: a(n) WebClient 0x7ffef3d740d0 I WebClient>sslConnect 0x55f75552d0b0: a(n) WebClient 0x7ffef3d74120 I WebClient>connect 0x55f75552d0b0: a(n) WebClient 0x7ffef3d74180 I WebClient>sendRequest:contentBlock: 0x55f75552d0b0: a(n) WebClient 0x7ffef3d741d0 I WebClient>sendRequest:content:size: 0x55f75552d0b0: a(n) WebClient 0x7ffef3d74228 I WebClient>sendRequest: 0x55f75552d0b0: a(n) WebClient 0x7ffef3d74278 I WebClient>httpHead:do: 0x55f75552d0b0: a(n) WebClient 0x7ffef3d742c8 I WebClient>httpHead: 0x55f75552d0b0: a(n) WebClient 0x7ffef3d74308 M [] in WebClient class>httpHead: 0x55f755c43eb0: a(n) WebClient 0x7ffef3d74350 M [] in WebClient class>httpDo: 0x55f755c43eb0: a(n) WebClient 0x7ffef3d74388 M [] in WebUtils class>handleAuth: 0x55f755c43d80: a(n) WebUtils 0x7ffef3d743c8 M FullBlockClosure(BlockClosure)>on:do: 0x55f7555ae3c8: a(n) FullBlockClosure 0x7ffef3d74420 I WebUtils class>handleAuth: 0x55f755c43d80: a(n) WebUtils 0x7ffef3d74478 I WebClient class>httpDo: 0x55f755c43eb0: a(n) WebClient 0x55f75552cfc8 s WebClient class>httpHead: 0x55f755c43eb0: a(n) WebClient 0x55f75557ec18 s UndefinedObject>DoIt 0x55f7557898e0: a(n) UndefinedObject 0x55f7554990d0 s Compiler>evaluateCue:ifFail: 0x55f755498c98: a(n) Compiler 0x55f755498fe8 s Compiler>evaluateCue:ifFail:logged: 0x55f755498c98: a(n) Compiler 0x55f75557ecd0 s Compiler>evaluate:in:to:environment:notifying:ifFail:logged: 0x55f755498c98: a(n) Compiler 0x55f755498e00 s [] in SmalltalkEditor>evaluateSelectionAndDo: 0x55f755031610: a(n) SmalltalkEditor 0x55f7554992a0 s FullBlockClosure(BlockClosure)>on:do: 0x55f755498c38: a(n) FullBlockClosure 0x55f755497268 s SmalltalkEditor(TextEditor)>evaluateSelectionAndDo: 0x55f755031610: a(n) SmalltalkEditor 0x55f755497188 s SmalltalkEditor(TextEditor)>printIt 0x55f755031610: a(n) SmalltalkEditor 0x55f7555734e8 s SmalltalkEditor(TextEditor)>printIt: 0x55f755031610: a(n) SmalltalkEditor 0x55f7555735a0 s SmalltalkEditor(TextEditor)>dispatchOnKeyboardEvent: 0x55f755031610: a(n) SmalltalkEditor 0x55f755573658 s SmalltalkEditor(TextEditor)>keyStroke: 0x55f755031610: a(n) SmalltalkEditor 0x55f755573710 s [] in TextMorphForEditView>keyStroke: 0x55f75502e918: a(n) TextMorphForEditView 0x55f7555737c8 s TextMorphForEditView(TextMorph)>handleInteraction:fromEvent: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755573880 s TextMorphForEditView>handleInteraction:fromEvent: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755496360 s [] in TextMorphForEditView>keyStroke: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755573938 s StandardToolSet class>codeCompletionAround:textMorph:keyStroke: 0x55f755b00788: a(n) StandardToolSet 0x55f7555739f0 s ToolSet class>codeCompletionAround:textMorph:keyStroke: 0x55f755af9750: a(n) ToolSet 0x55f755496278 s TextMorphForEditView(TextMorph)>keyStroke: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755573aa8 s TextMorphForEditView>keyStroke: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755573b60 s TextMorphForEditView(Morph)>handleKeystroke: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755573c18 s TextMorphForEditView(TextMorph)>handleKeystroke: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755573cd0 s KeyboardEvent>sentTo: 0x55f755495c88: a(n) KeyboardEvent 0x55f755573d88 s TextMorphForEditView(Morph)>handleEvent: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755573e40 s TextMorphForEditView(Morph)>handleFocusEvent: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755495db0 s MorphicEventDispatcher>doHandlingForFocusEvent:with: 0x55f755494600: a(n) MorphicEventDispatcher 0x55f755495cf8 s MorphicEventDispatcher>dispatchFocusEvent:with: 0x55f755494600: a(n) MorphicEventDispatcher 0x55f7555713b0 s TextMorphForEditView(Morph)>processFocusEvent:using: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755571468 s TextMorphForEditView(Morph)>processFocusEvent: 0x55f75502e918: a(n) TextMorphForEditView 0x55f755571520 s [] in HandMorph>sendFocusEvent:to:clear: 0x55f755ffdd60: a(n) HandMorph 0x55f7555715d8 s [] in ActiveEventVariable class>value:during: 0x55f755fbf218: a(n) ActiveEventVariable 0x55f755571690 s FullBlockClosure(BlockClosure)>ensure: 0x55f755494568: a(n) FullBlockClosure 0x55f755494480 s ActiveEventVariable class(DynamicVariable class)>value:during: 0x55f755fbf218: a(n) ActiveEventVariable 0x55f755571748 s [] in ActiveEventVariable class>value:during: 0x55f755fbf218: a(n) ActiveEventVariable 0x55f755571800 s FullBlockClosure(BlockClosure)>ensure: 0x55f755494400: a(n) FullBlockClosure 0x55f755494348 s ActiveEventVariable class>value:during: 0x55f755fbf218: a(n) ActiveEventVariable 0x55f7555718b8 s KeyboardEvent(MorphicEvent)>becomeActiveDuring: 0x55f755493290: a(n) KeyboardEvent 0x55f755494090 s [] in HandMorph>sendFocusEvent:to:clear: 0x55f755ffdd60: a(n) HandMorph 0x55f755571970 s [] in ActiveHandVariable class>value:during: 0x55f755fbf2b8: a(n) ActiveHandVariable 0x55f755571a28 s FullBlockClosure(BlockClosure)>ensure: 0x55f755494010: a(n) FullBlockClosure 0x55f755493f28 s ActiveHandVariable class(DynamicVariable class)>value:during: 0x55f755fbf2b8: a(n) ActiveHandVariable 0x55f755571ae0 s [] in ActiveHandVariable class>value:during: 0x55f755fbf2b8: a(n) ActiveHandVariable 0x55f755571b98 s FullBlockClosure(BlockClosure)>ensure: 0x55f755493ea8: a(n) FullBlockClosure 0x55f755493df0 s ActiveHandVariable class>value:during: 0x55f755fbf2b8: a(n) ActiveHandVariable 0x55f755571c50 s HandMorph>becomeActiveDuring: 0x55f755ffdd60: a(n) HandMorph 0x55f755493c18 s [] in HandMorph>sendFocusEvent:to:clear: 0x55f755ffdd60: a(n) HandMorph 0x55f755493a90 s [] in ActiveWorldVariable class>value:during: 0x55f755fbf358: a(n) ActiveWorldVariable 0x55f75556ef88 s FullBlockClosure(BlockClosure)>ensure: 0x55f755493a10: a(n) FullBlockClosure 0x55f755493928 s ActiveWorldVariable class(DynamicVariable class)>value:during: 0x55f755fbf358: a(n) ActiveWorldVariable 0x55f75556f040 s [] in ActiveWorldVariable class>value:during: 0x55f755fbf358: a(n) ActiveWorldVariable 0x55f75556f0f8 s FullBlockClosure(BlockClosure)>ensure: 0x55f7554938a8: a(n) FullBlockClosure 0x55f7554937f0 s ActiveWorldVariable class>value:during: 0x55f755fbf358: a(n) ActiveWorldVariable 0x55f75556f1b0 s PasteUpMorph>becomeActiveDuring: 0x55f755fd2a88: a(n) PasteUpMorph 0x55f755493618 s HandMorph>sendFocusEvent:to:clear: 0x55f755ffdd60: a(n) HandMorph 0x55f75556f268 s HandMorph>sendEvent:focus:clear: 0x55f755ffdd60: a(n) HandMorph 0x55f755493518 s HandMorph>sendKeyboardEvent: 0x55f755ffdd60: a(n) HandMorph 0x55f75556f320 s HandMorph>handleEvent: 0x55f755ffdd60: a(n) HandMorph 0x55f75556f3d8 s HandMorph>processEvents 0x55f755ffdd60: a(n) HandMorph 0x55f75556f490 s [] in WorldState>doOneCycleNowFor: 0x55f755fc9cb8: a(n) WorldState 0x55f75556f548 s [] in ActiveHandVariable class>value:during: 0x55f755fbf2b8: a(n) ActiveHandVariable 0x55f75556f600 s FullBlockClosure(BlockClosure)>ensure: 0x55f75548baa8: a(n) FullBlockClosure 0x55f75548b9c0 s ActiveHandVariable class(DynamicVariable class)>value:during: 0x55f755fbf2b8: a(n) ActiveHandVariable 0x55f75556f6b8 s [] in ActiveHandVariable class>value:during: 0x55f755fbf2b8: a(n) ActiveHandVariable 0x55f75556f770 s FullBlockClosure(BlockClosure)>ensure: 0x55f75548b940: a(n) FullBlockClosure 0x55f75548b888 s ActiveHandVariable class>value:during: 0x55f755fbf2b8: a(n) ActiveHandVariable 0x55f75556f828 s HandMorph>becomeActiveDuring: 0x55f755ffdd60: a(n) HandMorph 0x55f75548b4f8 s [] in WorldState>doOneCycleNowFor: 0x55f755fc9cb8: a(n) WorldState 0x55f75556f8e0 s Array(SequenceableCollection)>do: 0x55f7557ae078: a(n) Array 0x55f75556f998 s WorldState>handsDo: 0x55f755fc9cb8: a(n) WorldState 0x55f75548b410 s WorldState>doOneCycleNowFor: 0x55f755fc9cb8: a(n) WorldState 0x55f75556fa50 s WorldState>doOneCycleFor: 0x55f755fc9cb8: a(n) WorldState 0x55f75556fb08 s PasteUpMorph>doOneCycle 0x55f755fd2a88: a(n) PasteUpMorph 0x55f758759730 s [] in MorphicProject>spawnNewProcess 0x55f7563b5728: a(n) MorphicProject 0x55f7587598d8 s [] in FullBlockClosure>newProcess 0x55f758759990: a(n) FullBlockClosure
Most recent primitives String>>#compareWith:collated: String>>#compareWith:collated: Context>>#findNextHandlerContextStarting Context>>#tempAt: Context>>#tempAt: Context>>#tempAt:put: Context>>#tempAt: Context>>#findNextUnwindContextUpTo: Context>>#tempAt: Context>>#tempAt:put: Context>>#tempAt: Behavior>>#basicNew: Context>>#stackp: **StackOverflow** Context>>#stackp: Context>>#at:put: Context>>#stackp: Context>>#at:put: Context>>#at: Context>>#stackp: Context>>#stackp: Context>>#at:put: Object>>#at: Object>>#at: Object>>#at: Object>>#at: Context>>#stackp: Context>>#at:put: Context>>#at: Context>>#stackp: Context>>#tempAt:put: Context>>#stackp: Context>>#at:put: Context>>#at: Context>>#stackp: Context>>#findNextUnwindContextUpTo: Context>>#terminateTo: String>>#compareWith:collated: ByteString>>#byteAt:put: ByteString>>#byteAt:put: ByteString>>#byteAt:put: ByteString>>#byteAt:put: ByteString>>#byteAt:put: Behavior>>#basicNew FullBlockClosure>>#value FullBlockClosure>>#value FullBlockClosure>>#value: ByteString>>#findSubstring:in:startingAt:matchTable: String>>#compareWith:collated: Character>>#asciiValue ByteString>>#indexOfAscii:inString:startingAt: Character>>#asciiValue ByteString>>#indexOfAscii:inString:startingAt: String>>#compareWith:collated: FullBlockClosure>>#value Behavior>>#basicNew ByteString>>#findSubstring:in:startingAt:matchTable: ArrayedCollection>>#size SmallInteger>>#+ ArrayedCollection>>#size SmallInteger>>#- SmallInteger>>#- SmallInteger>>#+ SmallInteger>>#>= Behavior>>#basicNew FullBlockClosure>>#value: Behavior>>#basicNew FullBlockClosure>>#value: String>>#compareWith:collated: ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= FullBlockClosure>>#value Object>>#species String>>#compareWith:collated: NetNameResolver>>#primNameResolverStatus Behavior>>#basicNew Semaphore>>#wait FullBlockClosure>>#valueNoContextSwitch SmalltalkImage>>#specialObjectsArray Object>>#at: Object>>#at: Object>>#at:put: Object>>#at: Object>>#at:put: ProtoObject>>#identityHash Object>>#at: Behavior>>#basicNew Object>>#at:put: SmallInteger>>#* SmallInteger>>#* Semaphore>>#signal FullBlockClosure>>#value:value: NetNameResolver>>#primInitializeNetwork: NetNameResolver>>#primHostNameSize ByteString>>#at: Character>>#asInteger Character>>#asInteger Object>>#at: Time>>#utcMicrosecondClock Semaphore>>#wait FullBlockClosure>>#valueNoContextSwitch NetNameResolver>>#primNameResolverStatus NetNameResolver>>#primStartLookupOfName: NetNameResolver>>#primNameResolverStatus NetNameResolver>>#primNameLookupResult Semaphore>>#signal NetNameResolver>>#primNameResolverStatus SmallInteger>>#= FullBlockClosure>>#value Behavior>>#basicNew Array>>#new: Behavior>>#basicNew Object>>#at:put: Object>>#at:put: Object>>#at:put: Array>>#new: Semaphore>>#wait FullBlockClosure>>#valueNoContextSwitch **StackOverflow** SmalltalkImage>>#specialObjectsArray Object>>#at: Object>>#at: SmallInteger>>#> Object>>#at: Object>>#at:put: Object>>#at: Object>>#at:put: SmallInteger>>#\ Object>>#at:put: SmallInteger>>#* SmallInteger>>#* SmallInteger>>#// Object>>#at: Object>>#at: Array>>#new: Object>>#at: SmallInteger>>#\ Object>>#at: Object>>#at:put: Semaphore>>#signal Object>>#at: Object>>#at: Object>>#at: Object>>#at: Object>>#at: FullBlockClosure>>#valueNoContextSwitch FullBlockClosure>>#valueWithArguments:
Socket>>#primSocketCreateNetwork:type:receiveBufferSize:sendBufSize:semaIndex:readSemaIndex:writeSemaIndex: Object>>#shallowCopy ProtoObject>>#identityHash SmallInteger>>#\ Object>>#at: Object>>#at: SmallInteger>>#\ Object>>#at: FullBlockClosure>>#value Semaphore>>#wait FullBlockClosure>>#value FullBlockClosure>>#value Behavior>>#basicNew: Object>>#at:put: Behavior>>#basicNew **StackOverflow** Array>>#new: Object>>#at:put: Semaphore>>#signal FullBlockClosure>>#value FullBlockClosure>>#value: Socket>>#primSocketConnectionStatus: NetNameResolver>>#primNameResolverStatus Socket>>#primSocketConnectionStatus: Socket>>#primSocket:connectTo:port: Time>>#utcMicrosecondClock SmallInteger>>#// Socket>>#primSocketConnectionStatus: Time>>#utcMicrosecondClock Behavior>>#basicNew FullBlockClosure>>#valueNoContextSwitch Semaphore>>#wait Semaphore>>#signal Time>>#utcMicrosecondClock SmallInteger>>#* Delay>>#primSignal:atUTCMicroseconds: Semaphore>>#wait Semaphore>>#signal Semaphore>>#wait ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: FullBlockClosure>>#value Semaphore>>#wait FullBlockClosure>>#valueNoContextSwitch Semaphore>>#signal Time>>#utcMicrosecondClock Object>>#at: Object>>#at: Object>>#at:put: Delay>>#primSignal:atUTCMicroseconds: Semaphore>>#wait Semaphore>>#signal Socket>>#primSocketConnectionStatus: Behavior>>#basicNew Behavior>>#basicNew: Behavior>>#basicNew: String>>#compareWith:collated: ProtoObject>>#identityHash Behavior>>#basicNew Behavior>>#basicNew: Behavior>>#basicNew: Behavior>>#basicNew: Behavior>>#adoptInstance: Behavior>>#basicNew: Behavior>>#basicNew: ArrayedCollection>>#size ProtoObject>>#identityHash SmallInteger>>#\ Object>>#basicAt: Behavior>>#basicNew SqueakSSL>>#primitiveSSLCreate FullBlockClosure>>#value SqueakSSL>>#primitiveSSL:setStringProperty:toValue: FullBlockClosure>>#valueNoContextSwitch ArrayedCollection>>#size SqueakSSL>>#primitiveSSL:connect:startingAt:count:into:
stack page bytes 8192 available headroom 5576 minimum unused headroom 6024
(Segmentation fault) Aborted (core dumped)
================ Raspberry Pi ARM64 crash ================
Segmentation fault Wed Feb 14 11:33:39 2024
/home/edoneel/local/squeak/squeak Squeak VM version: 5.0-202402132331 Wed Feb 14 10:49:51 AM CET 2024 gcc 12 [Production Spur 64-bit aarch64 VM] Built from: CoInterpreter VMMaker.oscog-eem.3349 uuid: 09001547-129a-4b6b-9fed-ccdd6790c8f4 Feb 14 2024 With: StackToRegisterMappingCogit VMMaker.oscog-eem.3349 uuid: 09001547-129a-4b6b-9fed-ccdd6790c8f4 Feb 14 2024 Revision: VM: 202402132331 edoneel@water:tmp/opensmalltalk-vm Date: Tue Feb 13 15:31:15 2024 CommitHash: c1cd03540 Plugins: 202402132331 edoneel@water:tmp/opensmalltalk-vm Build host: Linux neve 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux plugin path: /home/edoneel/local/squeak/ [default: /home/edoneel/local/squeak/]
C stack backtrace & registers: x0 0x1 x1 0x100019201010316 x2 0x6 x3 0x7ffb8de2e0 x4 0x555b6f1530 x5 0x7fffffff x6 (nil) x7 0x7fb9fb008c x8 0x16 x9 0xffffffffffffed5f x10 0xffffffffffff006b x11 0xffffffffffff00a7 x12 0xffffffffffff00b0 x13 0xffffffffffff00ff x14 0x10 x15 (nil) x16 0x2 x17 (nil) x18 (nil) x19 0x555b6f1000 x20 (nil) x21 0x555b6f1530 x22 0x1 x23 (nil) x24 0x555b6e0000 x25 (nil) x26 0x7ffb8de350 x27 0x5560e3ddcb x29 0x555b5a66e0 fp 0x7ffb8b47e0 lr 0x555b5b65e4 sp 0x7ffb8b47e0 */home/edoneel/local/squeak/squeak(+0x3abc0)[0x555b57abc0] /home/edoneel/local/squeak/squeak(+0xc2c64)[0x555b602c64] /home/edoneel/local/squeak/squeak(+0xc300c)[0x555b60300c] linux-vdso.so.1(__kernel_rt_sigreturn+0x0)[0x7fbc5307bc] /home/edoneel/local/squeak/squeak(+0x3abc0)[0x555b57abc0] /home/edoneel/local/squeak/squeak(interpret+0x644)[0x555b5b65e4] /home/edoneel/local/squeak/squeak(interpret+0x870)[0x555b5b6810] /home/edoneel/local/squeak/squeak(main+0x49c)[0x555b574bdc] /lib/aarch64-linux-gnu/libc.so.6(+0x27780)[0x7fbc2d7780] /lib/aarch64-linux-gnu/libc.so.6(__libc_start_main+0x98)[0x7fbc2d7858] /home/edoneel/local/squeak/squeak(_start+0x30)[0x555b574d30] [0x0]
Smalltalk stack dump: 0x7ffb8de2e0 I [] in UndefinedObject>(nil) 0x555f2898e0: a(n) UndefinedObject 0x7ffb8de350 I SqueakSSL>connect:from:to:into: 0x555eccea48: a(n) SqueakSSL 0x7ffb8de3b0 M [] in SecureSocketStream>sslConnectTo: 0x555ecc5af0: a(n) SecureSocketStream 0x7ffb8de3f0 M FullBlockClosure(BlockClosure)>ifCurtailed: 0x555eccec30: a(n) FullBlockClosure 0x7ffb8de448 I SecureSocketStream>sslConnectTo: 0x555ecc5af0: a(n) SecureSocketStream 0x7ffb8de490 I WebClient>sslConnect:to: 0x555ec42ce8: a(n) WebClient 0x7ffb8de4f0 I WebClient>sslConnect 0x555ec42ce8: a(n) WebClient 0x7ffb8de540 I WebClient>connect 0x555ec42ce8: a(n) WebClient 0x7ffb8de5a0 I WebClient>sendRequest:contentBlock: 0x555ec42ce8: a(n) WebClient 0x7ffb8de5f0 I WebClient>sendRequest:content:size: 0x555ec42ce8: a(n) WebClient 0x7ffb8de648 I WebClient>sendRequest: 0x555ec42ce8: a(n) WebClient 0x7ffb8de698 I WebClient>httpHead:do: 0x555ec42ce8: a(n) WebClient 0x7ffb8de6e8 I WebClient>httpHead: 0x555ec42ce8: a(n) WebClient 0x7ffb8de728 M [] in WebClient class>httpHead: 0x555f743eb0: a(n) WebClient 0x7ffb8de770 M [] in WebClient class>httpDo: 0x555f743eb0: a(n) WebClient 0x7ffb8de7a8 M [] in WebUtils class>handleAuth: 0x555f743d80: a(n) WebUtils 0x7ffb8de7e8 M FullBlockClosure(BlockClosure)>on:do: 0x555ecc0c40: a(n) FullBlockClosure 0x7ffb8de840 I WebUtils class>handleAuth: 0x555f743d80: a(n) WebUtils 0x7ffb8de898 I WebClient class>httpDo: 0x555f743eb0: a(n) WebClient 0x555ec42c00 s WebClient class>httpHead: 0x555f743eb0: a(n) WebClient 0x555ec8a128 s UndefinedObject>DoIt 0x555f2898e0: a(n) UndefinedObject 0x555ea02998 s Compiler>evaluateCue:ifFail: 0x555ea02980: a(n) Compiler 0x555ea02ad0 s Compiler>evaluateCue:ifFail:logged: 0x555ea02980: a(n) Compiler 0x555ec8a1e0 s Compiler>evaluate:in:to:environment:notifying:ifFail:logged: 0x555ea02980: a(n) Compiler 0x555ea02bd8 s [] in SmalltalkEditor>evaluateSelectionAndDo: 0x55629406b0: a(n) SmalltalkEditor 0x555ec8a298 s FullBlockClosure(BlockClosure)>on:do: 0x555ea02c90: a(n) FullBlockClosure 0x555ea02cf0 s SmalltalkEditor(TextEditor)>evaluateSelectionAndDo: 0x55629406b0: a(n) SmalltalkEditor 0x555ea023f8 s SmalltalkEditor(TextEditor)>printIt 0x55629406b0: a(n) SmalltalkEditor 0x555ec87c48 s SmalltalkEditor(TextEditor)>printIt: 0x55629406b0: a(n) SmalltalkEditor 0x555ec87d00 s SmalltalkEditor(TextEditor)>dispatchOnKeyboardEvent: 0x55629406b0: a(n) SmalltalkEditor 0x555ec87db8 s SmalltalkEditor(TextEditor)>keyStroke: 0x55629406b0: a(n) SmalltalkEditor 0x555ec87e70 s [] in TextMorphForEditView>keyStroke: 0x556291e628: a(n) TextMorphForEditView 0x555ec87f28 s TextMorphForEditView(TextMorph)>handleInteraction:fromEvent: 0x556291e628: a(n) TextMorphForEditView 0x555ec87fe0 s TextMorphForEditView>handleInteraction:fromEvent: 0x556291e628: a(n) TextMorphForEditView 0x555ea02560 s [] in TextMorphForEditView>keyStroke: 0x556291e628: a(n) TextMorphForEditView 0x555ec88098 s StandardToolSet class>codeCompletionAround:textMorph:keyStroke: 0x555f600788: a(n) StandardToolSet 0x555ec88150 s ToolSet class>codeCompletionAround:textMorph:keyStroke: 0x555f5f9750: a(n) ToolSet 0x555ea02648 s TextMorphForEditView(TextMorph)>keyStroke: 0x556291e628: a(n) TextMorphForEditView 0x555ec88208 s TextMorphForEditView>keyStroke: 0x556291e628: a(n) TextMorphForEditView 0x555ec882c0 s TextMorphForEditView(Morph)>handleKeystroke: 0x556291e628: a(n) TextMorphForEditView 0x555ec88378 s TextMorphForEditView(TextMorph)>handleKeystroke: 0x556291e628: a(n) TextMorphForEditView 0x555ec88430 s KeyboardEvent>sentTo: 0x555ea024b0: a(n) KeyboardEvent 0x555ec884e8 s TextMorphForEditView(Morph)>handleEvent: 0x556291e628: a(n) TextMorphForEditView 0x555ec885a0 s TextMorphForEditView(Morph)>handleFocusEvent: 0x556291e628: a(n) TextMorphForEditView 0x555ea02700 s MorphicEventDispatcher>doHandlingForFocusEvent:with: 0x555ea01b20: a(n) MorphicEventDispatcher 0x555ea01b38 s MorphicEventDispatcher>dispatchFocusEvent:with: 0x555ea01b20: a(n) MorphicEventDispatcher 0x555ec85b10 s TextMorphForEditView(Morph)>processFocusEvent:using: 0x556291e628: a(n) TextMorphForEditView 0x555ec85bc8 s TextMorphForEditView(Morph)>processFocusEvent: 0x556291e628: a(n) TextMorphForEditView 0x555ec85c80 s [] in HandMorph>sendFocusEvent:to:clear: 0x555fafdd60: a(n) HandMorph 0x555ec85d38 s [] in ActiveEventVariable class>value:during: 0x555fabf218: a(n) ActiveEventVariable 0x555ec85df0 s FullBlockClosure(BlockClosure)>ensure: 0x555ea01c30: a(n) FullBlockClosure 0x555ea01cc0 s ActiveEventVariable class(DynamicVariable class)>value:during: 0x555fabf218: a(n) ActiveEventVariable 0x555ec85ea8 s [] in ActiveEventVariable class>value:during: 0x555fabf218: a(n) ActiveEventVariable 0x555ec85f60 s FullBlockClosure(BlockClosure)>ensure: 0x555ea01d78: a(n) FullBlockClosure 0x555ea01de8 s ActiveEventVariable class>value:during: 0x555fabf218: a(n) ActiveEventVariable 0x555ec86018 s KeyboardEvent(MorphicEvent)>becomeActiveDuring: 0x555ea010c8: a(n) KeyboardEvent 0x555ea01ea0 s [] in HandMorph>sendFocusEvent:to:clear: 0x555fafdd60: a(n) HandMorph 0x555ec860d0 s [] in ActiveHandVariable class>value:during: 0x555fabf2b8: a(n) ActiveHandVariable 0x555ec86188 s FullBlockClosure(BlockClosure)>ensure: 0x555ea01f98: a(n) FullBlockClosure 0x555ea02028 s ActiveHandVariable class(DynamicVariable class)>value:during: 0x555fabf2b8: a(n) ActiveHandVariable 0x555ec86240 s [] in ActiveHandVariable class>value:during: 0x555fabf2b8: a(n) ActiveHandVariable 0x555ec862f8 s FullBlockClosure(BlockClosure)>ensure: 0x555ea020e0: a(n) FullBlockClosure 0x555ea02150 s ActiveHandVariable class>value:during: 0x555fabf2b8: a(n) ActiveHandVariable 0x555ec863b0 s HandMorph>becomeActiveDuring: 0x555fafdd60: a(n) HandMorph 0x555ea02208 s [] in HandMorph>sendFocusEvent:to:clear: 0x555fafdd60: a(n) HandMorph 0x555ec86468 s [] in ActiveWorldVariable class>value:during: 0x555fabf358: a(n) ActiveWorldVariable 0x555ea02300 s FullBlockClosure(BlockClosure)>ensure: 0x555ea022c0: a(n) FullBlockClosure 0x555ea01130 s ActiveWorldVariable class(DynamicVariable class)>value:during: 0x555fabf358: a(n) ActiveWorldVariable 0x555ec83858 s [] in ActiveWorldVariable class>value:during: 0x555fabf358: a(n) ActiveWorldVariable 0x555ec83910 s FullBlockClosure(BlockClosure)>ensure: 0x555ea01228: a(n) FullBlockClosure 0x555ea01298 s ActiveWorldVariable class>value:during: 0x555fabf358: a(n) ActiveWorldVariable 0x555ec839c8 s PasteUpMorph>becomeActiveDuring: 0x555fad2a88: a(n) PasteUpMorph 0x555ea01360 s HandMorph>sendFocusEvent:to:clear: 0x555fafdd60: a(n) HandMorph 0x555ec83a80 s HandMorph>sendEvent:focus:clear: 0x555fafdd60: a(n) HandMorph 0x555ea01450 s HandMorph>sendKeyboardEvent: 0x555fafdd60: a(n) HandMorph 0x555ec83b38 s HandMorph>handleEvent: 0x555fafdd60: a(n) HandMorph 0x555ec83bf0 s HandMorph>processEvents 0x555fafdd60: a(n) HandMorph 0x555ec83ca8 s [] in WorldState>doOneCycleNowFor: 0x555fac9cb8: a(n) WorldState 0x555ec83d60 s [] in ActiveHandVariable class>value:during: 0x555fabf2b8: a(n) ActiveHandVariable 0x555ec83e18 s FullBlockClosure(BlockClosure)>ensure: 0x555ea01598: a(n) FullBlockClosure 0x555ea01628 s ActiveHandVariable class(DynamicVariable class)>value:during: 0x555fabf2b8: a(n) ActiveHandVariable 0x555ec83ed0 s [] in ActiveHandVariable class>value:during: 0x555fabf2b8: a(n) ActiveHandVariable 0x555ec83f88 s FullBlockClosure(BlockClosure)>ensure: 0x555ea016e0: a(n) FullBlockClosure 0x555ea01750 s ActiveHandVariable class>value:during: 0x555fabf2b8: a(n) ActiveHandVariable 0x555ec84040 s HandMorph>becomeActiveDuring: 0x555fafdd60: a(n) HandMorph 0x555ea01808 s [] in WorldState>doOneCycleNowFor: 0x555fac9cb8: a(n) WorldState 0x555ec840f8 s Array(SequenceableCollection)>do: 0x555f2ae078: a(n) Array 0x555ec841b0 s WorldState>handsDo: 0x555fac9cb8: a(n) WorldState 0x555ea018f0 s WorldState>doOneCycleNowFor: 0x555fac9cb8: a(n) WorldState 0x555ec84268 s WorldState>doOneCycleFor: 0x555fac9cb8: a(n) WorldState 0x555ec84320 s PasteUpMorph>doOneCycle 0x555fad2a88: a(n) PasteUpMorph 0x5562259730 s [] in MorphicProject>spawnNewProcess 0x555feb5728: a(n) MorphicProject 0x55622598d8 s [] in FullBlockClosure>newProcess 0x5562259990: a(n) FullBlockClosure
Most recent primitives Context>>#tempAt: Behavior>>#basicNew: Context>>#stackp: Context>>#stackp: Context>>#at:put: Context>>#stackp: Context>>#at:put: Context>>#at: Context>>#stackp: Context>>#stackp: Context>>#at:put: Object>>#at: Object>>#at: Object>>#at: Object>>#at: Context>>#stackp: Context>>#at:put: Context>>#at: Context>>#stackp: Context>>#tempAt:put: Context>>#stackp: Context>>#at:put: Context>>#at: Context>>#stackp: Context>>#findNextUnwindContextUpTo: Context>>#terminateTo: String>>#compareWith:collated: Object>>#species Behavior>>#basicNew: ByteString>>#replaceFrom:to:with:startingAt: ByteString>>#replaceFrom:to:with:startingAt: ByteString>>#replaceFrom:to:with:startingAt: ByteString>>#byteAt:put: ByteString>>#byteAt:put: ByteString>>#byteAt:put: ByteString>>#byteAt:put: ByteString>>#byteAt:put: Behavior>>#basicNew Array>>#new: FullBlockClosure>>#value FullBlockClosure>>#value FullBlockClosure>>#value: Behavior>>#basicNew ByteString>>#findSubstring:in:startingAt:matchTable: String>>#compareWith:collated: Character>>#asciiValue ByteString>>#indexOfAscii:inString:startingAt: Character>>#asciiValue ByteString>>#indexOfAscii:inString:startingAt: String>>#compareWith:collated: FullBlockClosure>>#value Behavior>>#basicNew Behavior>>#basicNew Array>>#new: Behavior>>#basicNew ByteString>>#findSubstring:in:startingAt:matchTable: ArrayedCollection>>#size SmallInteger>>#+ ArrayedCollection>>#size SmallInteger>>#- SmallInteger>>#- SmallInteger>>#+ SmallInteger>>#>= Behavior>>#basicNew Object>>#at:put: FullBlockClosure>>#value: Behavior>>#basicNew FullBlockClosure>>#value: String>>#compareWith:collated: Behavior>>#basicNew Object>>#at:put: ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= ByteString>>#at: Character>>#= FullBlockClosure>>#value Object>>#species String>>#compareWith:collated: NetNameResolver>>#primNameResolverStatus Behavior>>#basicNew Semaphore>>#wait FullBlockClosure>>#valueNoContextSwitch SmalltalkImage>>#specialObjectsArray Object>>#at: Object>>#at:put: Object>>#at: Object>>#at:put: **StackOverflow** ProtoObject>>#identityHash SmallInteger>>#* SmallInteger>>#\ Object>>#at:put: SmallInteger>>#* SmallInteger>>#* Semaphore>>#signal FullBlockClosure>>#value:value: NetNameResolver>>#primInitializeNetwork: NetNameResolver>>#primHostNameSize Behavior>>#basicNew: Behavior>>#basicNew ByteString>>#at: Character>>#asInteger Character>>#asInteger Object>>#at: Time>>#utcMicrosecondClock Semaphore>>#wait FullBlockClosure>>#valueNoContextSwitch NetNameResolver>>#primNameResolverStatus NetNameResolver>>#primStartLookupOfName: NetNameResolver>>#primNameResolverStatus NetNameResolver>>#primNameLookupResult Semaphore>>#signal NetNameResolver>>#primNameResolverStatus SmallInteger>>#= FullBlockClosure>>#value Behavior>>#basicNew **StackOverflow** Array>>#new: Behavior>>#basicNew Object>>#at:put: Object>>#at:put: Object>>#at:put: Array>>#new: Semaphore>>#wait FullBlockClosure>>#valueNoContextSwitch SmalltalkImage>>#specialObjectsArray Object>>#at: Object>>#at: SmallInteger>>#> Object>>#at: Object>>#at:put: ProtoObject>>#identityHash SmallInteger>>#\ Object>>#at:put: SmallInteger>>#* SmallInteger>>#* SmallInteger>>#// Array>>#new: SmallInteger>>#\ Object>>#at:put: Semaphore>>#signal Object>>#at: Object>>#at: Object>>#at: Object>>#at: Object>>#at: FullBlockClosure>>#valueNoContextSwitch FullBlockClosure>>#valueWithArguments:
Socket>>#primSocketCreateNetwork:type:receiveBufferSize:sendBufSize:semaIndex:readSemaIndex:writeSemaIndex: Object>>#shallowCopy ProtoObject>>#identityHash SmallInteger>>#\ SmallInteger>>#\ SmallInteger>>#= FullBlockClosure>>#value Semaphore>>#wait FullBlockClosure>>#value **StackOverflow** FullBlockClosure>>#value **StackOverflow** Behavior>>#basicNew: Object>>#at:put: Behavior>>#basicNew Array>>#new: Object>>#at:put: Semaphore>>#signal FullBlockClosure>>#value FullBlockClosure>>#value: Socket>>#primSocketConnectionStatus: NetNameResolver>>#primNameResolverStatus Socket>>#primSocketConnectionStatus: Socket>>#primSocket:connectTo:port: Time>>#utcMicrosecondClock SmallInteger>>#// Socket>>#primSocketConnectionStatus: Time>>#utcMicrosecondClock Behavior>>#basicNew FullBlockClosure>>#valueNoContextSwitch Semaphore>>#wait **StackOverflow** Semaphore>>#signal Time>>#utcMicrosecondClock SmallInteger>>#* Object>>#at:put: Delay>>#primSignal:atUTCMicroseconds: Semaphore>>#wait Semaphore>>#signal Semaphore>>#wait ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: ProcessorScheduler>>#relinquishProcessorForMicroseconds: FullBlockClosure>>#value Semaphore>>#wait **StackOverflow** FullBlockClosure>>#valueNoContextSwitch Semaphore>>#signal Time>>#utcMicrosecondClock Object>>#at: Object>>#at: Object>>#at:put: Delay>>#primSignal:atUTCMicroseconds: Semaphore>>#wait Semaphore>>#signal Socket>>#primSocketConnectionStatus: Behavior>>#basicNew Behavior>>#basicNew: Behavior>>#basicNew: String>>#compareWith:collated: ProtoObject>>#identityHash Behavior>>#basicNew Behavior>>#basicNew: Behavior>>#basicNew Behavior>>#basicNew: Behavior>>#basicNew: Behavior>>#adoptInstance: Behavior>>#basicNew: Behavior>>#basicNew: ProtoObject>>#identityHash SmallInteger>>#\ Object>>#basicAt: Behavior>>#basicNew SqueakSSL>>#primitiveSSLCreate FullBlockClosure>>#value SqueakSSL>>#primitiveSSL:setStringProperty:toValue: FullBlockClosure>>#valueNoContextSwitch ArrayedCollection>>#size SqueakSSL>>#primitiveSSL:connect:startingAt:count:into:
stack page bytes 8192 available headroom 5780 minimum unused headroom 6232
(Segmentation fault) Aborted edoneel@neve:~ $
On 2024-02-14T00:35:57.000+01:00, Eliot Miranda via Vm-dev < vm-dev@lists.squeakfoundation.org> wrote:
Branch: refs/heads/Cog Home: https://github.com/OpenSmalltalk/opensmalltalk-vm Commit: c1cd0354069516bfdecd939710f81c8ecdd49f7e https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/c1cd0354069516bfdec... Author: Eliot Miranda eliot.miranda@gmail.com Date: 2024-02-13 (Tue, 13 Feb 2024)
Changed paths: M platforms/iOS/plugins/ClipboardExtendedPlugin/sqMacExtendedClipboard.m M scripts/revertIfEssentiallyUnchanged M src/plugins/FilePlugin/FilePlugin.c M src/plugins/Squeak3D/Squeak3D.c M src/plugins/SqueakSSL/SqueakSSL.c M src/spur32.cog.lowcode/cointerp.c M src/spur32.cog.lowcode/gcc3x-cointerp.c M src/spur32.cog.newspeak/cointerp.c M src/spur32.cog.newspeak/gcc3x-cointerp.c M src/spur32.cog/cointerp.c M src/spur32.cog/cointerpmt.c M src/spur32.cog/gcc3x-cointerp.c M src/spur32.cog/gcc3x-cointerpmt.c M src/spur32.sista/cointerp.c M src/spur32.sista/gcc3x-cointerp.c M src/spur64.cog.lowcode/cointerp.c M src/spur64.cog.lowcode/gcc3x-cointerp.c M src/spur64.cog.newspeak/cointerp.c M src/spur64.cog.newspeak/gcc3x-cointerp.c M src/spur64.cog/cogitARMv8.c M src/spur64.cog/cointerp.c M src/spur64.cog/cointerpmt.c M src/spur64.cog/gcc3x-cointerp.c M src/spur64.cog/gcc3x-cointerpmt.c M src/spur64.sista/cogitARMv8.c M src/spur64.sista/cointerp.c M src/spur64.sista/gcc3x-cointerp.c M src/spur64.stack.newspeak/gcc3x-interp.c M src/spur64.stack.newspeak/interp.c M src/v3.cog/cointerp.c M src/v3.cog/gcc3x-cointerp.c
Log Message:
CogVM source as per VMMaker.oscog-eem.3349
Integrate VMMaker.threaded-LM.3339, 3341, 3342 & 3343.
Make vmThread>>#state an atomic_int
Allow -1 to be set as vmOwner. This is currently used by the heartbeat thread. In future this will be used by the ownVMFromUnidentifiedThread function.
This combines well with the additional change that makes disownVM return a CogVMThread* disguised as void*.
We can then ensure that the threads variable is only ever accessed by the vm owner.
Fix multiple issues regarding thread safety
- vmOwner -1 can be used to lock the VM to a thread that is not a classical "VM Thread" (e.g. the heartbeat thread).
- maxWaitingPriority is now an atomic.
Fix thread switch accidentally disowning the VM which causes an incorrect preemption.
Allow thread switching during the SqueakSSL primitiveConnect.
Rename ownerIndex to threadAffinity.
And update revertIfEssentiallyUnchanged to cope with the CryptographyPlugins.