pharo icon indicating copy to clipboard operation
pharo copied to clipboard

Segfault with Pharo 11 on Linux

Open astares opened this issue 3 years ago • 2 comments

I get a segmentation fault error on LinuxMint and Ubuntu with latest Pharo 11

 lsb_release -a
No LSB modules are available.
Distributor ID:	Linuxmint
Description:	Linux Mint 21
Release:	21
Codename:	vanessa

#!/bin/bash

echo *********************************************
echo * Download and run Pharo
echo *********************************************

# prepare
if [ -d build ]; then rm -Rf build; fi
mkdir build
cd build

# download 
wget -O- https://get.pharo.org/64/110+vm | bash
 
# run
./pharo-ui ./Pharo.image 

astares avatar Sep 21 '22 16:09 astares

-2022-09-21 18:14:09-- https://get.pharo.org/64/110+vm Resolving get.pharo.org (get.pharo.org)... 164.132.235.17, 2001:41d0:301::23 Connecting to get.pharo.org (get.pharo.org)|164.132.235.17|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 3064 (3.0K) Saving to: ‘STDOUT’

  •               100%[===================>]   2.99K  --.-KB/s    in 0s      
    

2022-09-21 18:14:10 (771 MB/s) - written to stdout [3064/3064]

Downloading the latest 110 Image: http://files.pharo.org/get-files/110/pharoImage-x86_64.zip Pharo.image Downloading the latest pharoVM: http://files.pharo.org/get-files/110/pharo-vm-Linux-x86_64-stable.zip pharo-vm/pharo Creating starter scripts pharo and pharo-ui

Segmentation fault Wed Sep 21 18:14:47 2022

/home/kiwi/pharo/pharo11/build/pharo-vm/lib/pharo PharoVM version:5.0-Pharo 9.0.18 built on Sep 2 2022 16:55:39 Compiler: 5.4.0 20160609 5.4.0 20160609 [Production Spur 64-bit VM] Built from: CoInterpreter * VMMaker-tonel.1 uuid: e72c92a1-14a4-0d00-9da9-272e08c6380e Sep 2 2022 With:StackToRegisterMappingCogit * VMMaker-tonel.1 uuid: e72c92a1-14a4-0d00-9da9-272e08c6380e Sep 2 2022 Revision: v9.0.18 - Commit: 7249c17 - Date: 2022-09-02 14:31:12 +0200

C stack backtrace & registers: rax 0x00000000 rbx 0x7ff25ad0e2d8 rcx 0x00000ea0 rdx 0x17058bb8 rdi 0x00000001 rsi 0x00000001 rbp 0x7ffcd3358998 rsp 0x7ffcd3358978 r8 0x16807910 r9 0x17e5fc00 r10 0x7ff25ad05d00 r11 0x182c3bb0 r12 0x8000000008200021 r13 0x17e74650 r14 0x00000009 r15 0x17058bc8 rip 0x16807a4d *[0x16807a4d] /home/kiwi/pharo/pharo11/build/pharo-vm/lib/libPharoVMCore.so(+0xc41ec)[0x7ff25aac41ec] /home/kiwi/pharo/pharo11/build/pharo-vm/lib/libPharoVMCore.so(doReport+0xb5)[0x7ff25aac44d5] /home/kiwi/pharo/pharo11/build/pharo-vm/lib/libPharoVMCore.so(sigsegv+0x14)[0x7ff25aac4544] /lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7ff25a81a520] [0x16807a4d] [0xffffffffffffffff]

All Smalltalk process stacks (active first): Process 0x16b991c0 priority 40 0x7ffcd3358998 M ExternalAddress>unsignedByteAt: 0x17058bb8: a(n) ExternalAddress 0x7ffcd33589d8 M [] in ExternalAddress>bytesFromCString 0x17058bb8: a(n) ExternalAddress 0x7ffcd3358a18 M ByteArray class(SequenceableCollection class)>new:streamContents: 0x17e74650: a(n) ByteArray class 0x7ffcd3358a58 M ByteArray class(SequenceableCollection class)>streamContents: 0x17e74650: a(n) ByteArray class 0x7ffcd3358a98 M ExternalAddress>bytesFromCString 0x17058bb8: a(n) ExternalAddress 0x7ffcd3358ae0 I ExternalAddress>utf8StringFromCString 0x17058bb8: a(n) ExternalAddress 0x7ffcd3358b28 M LGitCommit>commit_message_encoding: 0x16b9e518: a(n) LGitCommit 0x7ffcd3358b80 M TFCalloutAPI(FFICalloutAPI)>function:library: 0x1702a090: a(n) TFCalloutAPI 0x7ffcd3358bc8 M LGitCommit(Object)>ffiCall:library:options:fixedArgumentCount: 0x16b9e518: a(n) LGitCommit 0x7ffcd3358c18 M LGitCommit(Object)>ffiCall:library:options: 0x16b9e518: a(n) LGitCommit 0x7ffcd3358c60 M LGitCommit(Object)>ffiCall:options: 0x16b9e518: a(n) LGitCommit 0x7ffcd3358ca0 M LGitCommit(LGitExternalObject)>ffiCallSafely:options: 0x16b9e518: a(n) LGitCommit 0x7ffcd3358cf0 I LGitCommit>commit_message_encoding: 0x16b9e518: a(n) LGitCommit 0x7ffcd3358d48 I LGitCommit>message 0x16b9e518: a(n) LGitCommit 0x7ffcd3358d90 M [] in IceLibgitRepository>commitFromGitCommit: 0x18bcdea0: a(n) IceLibgitRepository 0x7ffcd3358dc0 M FullBlockClosure(BlockClosure)>cull: 0x16b9e538: a(n) FullBlockClosure 0x7ffcd3358e18 M [] in LRUCache>at:ifAbsentPut: 0x16b99228: a(n) LRUCache 0x7ffcd3358e50 M Dictionary>associationAt:ifAbsent: 0x16b9e5e8: a(n) Dictionary 0x7ffcd3358ea8 M [] in LRUCache>at:ifAbsentPut: 0x16b99228: a(n) LRUCache 0x7ffcd3358ed8 M UndefinedObject>ifNil:ifNotNil: 0x17e5fc00: a(n) UndefinedObject 0x7ffcd3358f28 I LRUCache(AbstractCache)>critical: 0x16b99228: a(n) LRUCache 0x7ffcd3358f70 I LRUCache>at:ifAbsentPut: 0x16b99228: a(n) LRUCache 0x7ffcd3358fc0 I IceLibgitRepository>commitFromGitCommit: 0x18bcdea0: a(n) IceLibgitRepository 0x7ffcd3359010 M [] in IceLibgitRepository>revparse: 0x18bcdea0: a(n) IceLibgitRepository 0x7ffcd3359040 M FullBlockClosure(BlockClosure)>on:do: 0x16b9b218: a(n) FullBlockClosure 0x7ffcd334e9b0 I IceLibgitRepository>handleLibgitError: 0x18bcdea0: a(n) IceLibgitRepository 0x7ffcd334e9f8 I IceLibgitRepository>revparse: 0x18bcdea0: a(n) IceLibgitRepository 0x7ffcd334ea38 M [] in IceLibgitRepository>lookupCommit:ifAbsent: 0x18bcdea0: a(n) IceLibgitRepository 0x7ffcd334ea68 M FullBlockClosure(BlockClosure)>on:do: 0x16b9b300: a(n) FullBlockClosure 0x7ffcd334eab8 I IceLibgitRepository>lookupCommit:ifAbsent: 0x18bcdea0: a(n) IceLibgitRepository 0x7ffcd334eb08 I IceLibgitRepository(IceRepository)>lookupCommit: 0x18bcdea0: a(n) IceLibgitRepository 0x7ffcd334eb58 I IceLibgitRepository(IceRepository)>postFetch 0x18bcdea0: a(n) IceLibgitRepository 0x7ffcd334eb90 M UndefinedObject>DoIt 0x17e5fc00: a(n) UndefinedObject 0x7ffcd334ebd0 I OCReceiverDoItSemanticScope(OCDoItSemanticScope)>evaluateDoIt: 0x16b9b4d0: a(n) OCReceiverDoItSemanticScope 0x7ffcd334ec28 I OpalCompiler>evaluate 0x16b9b758: a(n) OpalCompiler 0x7ffcd334ec68 I OpalCompiler>evaluate: 0x16b9b758: a(n) OpalCompiler 0x7ffcd334ecb0 M [] in EvaluateCommandLineHandler>evaluate: 0x16b9b910: a(n) EvaluateCommandLineHandler 0x7ffcd334ece0 M FullBlockClosure(BlockClosure)>on:do: 0x16b9b940: a(n) FullBlockClosure 0x7ffcd334ed38 I EvaluateCommandLineHandler>evaluate: 0x16b9b910: a(n) EvaluateCommandLineHandler 0x7ffcd334ed88 I EvaluateCommandLineHandler>evaluateArguments 0x16b9b910: a(n) EvaluateCommandLineHandler 0x7ffcd334edc8 I EvaluateCommandLineHandler>activate 0x16b9b910: a(n) EvaluateCommandLineHandler 0x7ffcd334ee08 I EvaluateCommandLineHandler class(CommandLineHandler class)>activateWith: 0x17fa91e0: a(n) EvaluateCommandLineHandler class 0x7ffcd334ee48 M [] in PharoCommandLineHandler>activateSubCommand: 0x16b9bbd8: a(n) PharoCommandLineHandler 0x7ffcd334ee78 M FullBlockClosure(BlockClosure)>on:do: 0x16b9bc00: a(n) FullBlockClosure 0x7ffcd334eec8 I PharoCommandLineHandler(BasicCommandLineHandler)>activateSubCommand: 0x16b9bbd8: a(n) PharoCommandLineHandler 0x7ffcd334ef18 I PharoCommandLineHandler(BasicCommandLineHandler)>handleSubcommand 0x16b9bbd8: a(n) PharoCommandLineHandler 0x7ffcd334ef58 I PharoCommandLineHandler(BasicCommandLineHandler)>handleArgument: 0x16b9bbd8: a(n) PharoCommandLineHandler 0x7ffcd334ef90 M [] in PharoCommandLineHandler>activate 0x16b9bbd8: a(n) PharoCommandLineHandler 0x7ffcd334efc0 M FullBlockClosure(BlockClosure)>on:do: 0x16b9be00: a(n) FullBlockClosure 0x7ffcd334f010 I [] in PharoCommandLineHandler>activate 0x16b9bbd8: a(n) PharoCommandLineHandler 0x7ffcd334f050 I [] in FullBlockClosure>newProcess 0x16b9bf08: a(n) FullBlockClosure

processes at priority 40 Process 0x1a89cfc8 priority 40 0x7ffcd333b048 I MorphicRenderLoop>doOneCycleWhile: 0x1a88e690: a(n) MorphicRenderLoop 0x1a88e790 s [] in MorphicUIManager>spawnNewProcess 0x1a88e870 s [] in FullBlockClosure(BlockClosure)>newProcess

processes at priority 10 Process 0x16b67890 priority 10 0x7ffcd333efd0 I ProcessorScheduler class>idleProcess 0x17e750d0: a(n) ProcessorScheduler class 0x7ffcd333f010 I [] in ProcessorScheduler class>startUp 0x17e750d0: a(n) ProcessorScheduler class 0x7ffcd333f050 I [] in FullBlockClosure>newProcess 0x16b9ab68: a(n) FullBlockClosure

suspended processes Process 0x16b67c88 priority 50 0x7ffcd3338fd0 I WeakArray class>finalizationProcess 0x17e75f58: a(n) WeakArray class 0x7ffcd3339010 I [] in WeakArray class>restartFinalizationProcess 0x17e75f58: a(n) WeakArray class 0x7ffcd3339050 I [] in FullBlockClosure>newProcess 0x16b99ff8: a(n) FullBlockClosure

Process 0x1a89d018 priority 80 0x7ffcd3330ff8 M DelayMicrosecondTicker>waitForUserSignalled:orExpired: 0x181f2908: a(n) DelayMicrosecondTicker 0x7ffcd3331050 I [] in DelaySemaphoreScheduler>runBackendLoopAtTimingPriority 0x181f1e80: a(n) DelaySemaphoreScheduler 0x1b570780 s FullBlockClosure(BlockClosure)>ensure: 0x1a88e9a0 s DelaySemaphoreScheduler(DelayBasicScheduler)>runBackendLoopAtTimingPriority 0x1b570180 s [] in DelaySemaphoreScheduler(DelayBasicScheduler)>startTimerEventLoopPriority: 0x1a88ea80 s [] in FullBlockClosure(BlockClosure)>newProcess

Process 0x19e7cdb0 priority 40 0x19e7f448 s AtomicSharedQueue>waitForNewItems 0x19e80390 s AtomicSharedQueue>next 0x19e80e98 s TKTWorkerProcess>privateNextTask 0x19e81798 s [] in TKTWorkerProcess>workerLoop 0x19e81870 s FullBlockClosure(BlockClosure)>repeat 0x19e81950 s TKTWorkerProcess>workerLoop 0x19e81a08 s MessageSend>value 0x19e81ac0 s [] in TKTPharoProcessProvider>createProcessDoing:named: 0x19e81b98 s [] in FullBlockClosure(BlockClosure)>newProcess

Process 0x16b67840 priority 60 0x7ffcd3336fd0 I SmalltalkImage>lowSpaceWatcher 0x17e82720: a(n) SmalltalkImage 0x7ffcd3337010 I [] in SmalltalkImage>installLowSpaceWatcher 0x17e82720: a(n) SmalltalkImage 0x7ffcd3337050 I [] in FullBlockClosure>newProcess 0x16b99e08: a(n) FullBlockClosure

Process 0x16b9eec8 priority 70 0x7ffcd3333010 I [] in TFCallbackQueue>forkCallbackProcess 0x16b67c20: a(n) TFCallbackQueue 0x7ffcd3333050 I [] in FullBlockClosure>newProcess 0x16b99898: a(n) FullBlockClosure

Process 0x16b98e08 priority 40 widowed caller frame 0x7ffcd3354f18

Process 0x16b68900 priority 60 0x7ffcd3334f18 M [] in Delay>wait 0x16f40678: a(n) Delay 0x7ffcd3334f58 M FullBlockClosure(BlockClosure)>ifCurtailed: 0x16f408f0: a(n) FullBlockClosure 0x7ffcd3334f90 M Delay>wait 0x16f40678: a(n) Delay 0x7ffcd3334fd0 M OSSDL2Driver>eventLoopProcessWithoutPlugin 0x16b68950: a(n) OSSDL2Driver 0x7ffcd3335010 I [] in OSSDL2Driver>setupEventLoop 0x16b68950: a(n) OSSDL2Driver 0x7ffcd3335050 I [] in FullBlockClosure>newProcess 0x16b99c48: a(n) FullBlockClosure

Most recent primitives indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: StackOverflow indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: findFirstInString:inSet:startingAt: primExists: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: findFirstInString:inSet:startingAt: primExists: basicNew: wait basicIdentityHash basicNew: basicNew: signal stringHash:initialHash: stringHash:initialHash: shallowCopy stringHash:initialHash: basicNew stringHash:initialHash: findSubstring:in:startingAt:matchTable: indexOfAscii:inString:startingAt: stringHash:initialHash: StackOverflow stringHash:initialHash: stringHash:initialHash: StackOverflow StackOverflow findSubstring:in:startingAt:matchTable: indexOfAscii:inString:startingAt: stringHash:initialHash: StackOverflow stringHash:initialHash: stringHash:initialHash: stringHash:initialHash: findSubstring:in:startingAt:matchTable: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: indexOfAscii:inString:startingAt: stringHash:initialHash: StackOverflow stringHash:initialHash: stringHash:initialHash: stringHash:initialHash: stringHash:initialHash: stringHash:initialHash: findSubstring:in:startingAt:matchTable: indexOfAscii:inString:startingAt: stringHash:initialHash: StackOverflow stringHash:initialHash: stringHash:initialHash: basicNew newMethod:header: at:put: at:put: at:put: at:put: size at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: basicNew: instVarAt: instVarAt:put: instVarAt: instVarAt:put: objectAt:put: basicNew: instVarAt: instVarAt:put: instVarAt: instVarAt:put: objectAt:put: flushCache at: tempAt: withArgs:executeMethod: primDefineFunctionWith:returnType: StackOverflow StackOverflow findFirstInString:inSet:startingAt: primLoadSymbol:module: invokeFunction:withArguments:

stack page bytes 8192 available headroom 5576 minimum unused headroom 0

astares avatar Sep 21 '22 16:09 astares

crash.dmp.txt

astares avatar Sep 21 '22 16:09 astares

Happens when loading Roassal3 full version

astares avatar Sep 22 '22 07:09 astares

@demarey I think it has to do with the change we integrated yesterday. I will check it, if you can see it also, it will be great.

tesonep avatar Sep 22 '22 07:09 tesonep

I managed to load some code by doing:

utf8StringFromCString
	" Assume that the receiver represents a C string and convert it to a byte array.
	WARNING: the referenced data MUST ends with a NULL character (byte 0).
	"
>>>	self isNull ifTrue: [ ^ '' ].
	^ self bytesFromCString ifNotNil: [ :bytes | bytes utf8Decoded ]

guillep avatar Sep 22 '22 13:09 guillep

We seem to have the method twice: image

astares avatar Sep 22 '22 13:09 astares

@guillep works for me after patching the one in ExternalAddress. I was able to load the full version of Roassal then

astares avatar Sep 22 '22 13:09 astares

After #11715 this does not happen anymore. Maybe we should close the issue?

jordanmontt avatar Sep 23 '22 08:09 jordanmontt

yes, github is not very clever, the "closes #someNumber" has to be in the comment if the PR to be detected.

MarcusDenker avatar Sep 23 '22 08:09 MarcusDenker