[squeak-dev] OSProcess crashes VM on 5.1 on Raspberry Pi

Herbert König herbertkoenig at gmx.net
Sat Aug 27 20:02:10 UTC 2016


Hi Dave,

thanks a lot that did it.

Herbert

Am 27.08.2016 um 16:23 schrieb David T. Lewis:
> The OSProcess plugin has been modified in the Cog/Spur VMs, and the
> modified version is broken. The solution is to use the unmodified version,
> which is VMConstruction-Plugins-OSProcessPlugin-dtl.40.mcz in the
> http://www.squeaksource.com/OSProcessPlugin repository.
>
> I am attaching a copy of the compiled OSProcess plugin from my Raspberry Pi.
> No guarantees, but if you unpack this and copy it to your VM directory, it
> should work.
>
> Dave
>
>
> On Sat, Aug 27, 2016 at 02:04:27PM +0200, Herbert K??nig wrote:
>> Hi,
>>
>> on my Raspi A+ I run the 5.0 allInOne with OSProcess and CommandShell. I
>> try to port to the shiny new 5.1.
>>
>> Very early in my app i do:
>>
>> ExternalUnixOSProcess command: 'pkill raspistill' ; raspistill not running.
>>
>> This gives me the attached crash dump. in 5.0 I used OSProcess-dtl.95
>> and CommandShell-dtl.76.
>>
>> After my first crash I updated to the latest I found on Squeaksource, 99
>> and 83 resp.
>>
>> On lines 238 and 261 the dump says Stack overflow.
>>
>> Any ideas how to proceed?
>>
>> Cheers,
>>
>> Herbert
>>
>>
>>
>> Segmentation fault Sat Aug 27 13:44:20 2016
>>
>>
>> /home/pi/Desktop/Squeak5_1PictureAnalyze/bin/squeak
>> Squeak VM version: 5.0-201608171728  Wed Aug 17 19:29:47 UTC 2016 gcc 4.9.2 [Production Spur VM]
>> Built from: CoInterpreter VMMaker.oscog-cb.1919 uuid: 00a8dd2a-bc8d-4552-b400-be781c8aabec Aug 17 2016
>> With: StackToRegisterMappingCogit VMMaker.oscog-cb.1919 uuid: 00a8dd2a-bc8d-4552-b400-be781c8aabec Aug 17 2016
>> Revision: VM: 201608171728 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $ Date: Wed Aug 17 10:28:01 2016 -0700 $
>> Plugins: 201608171728 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
>> Build host: Linux testing-gce-65a3e8a3-406d-4e8d-9606-fb64a9951919 3.19.0-66-generic #74~14.04.1-Ubuntu SMP Tue Jul 19 19:56:11 UTC 2016 armv7l GNU/Linux
>> plugin path: /home/pi/Desktop/Squeak5_1PictureAnalyze/bin/ [default: /home/pi/Desktop/Squeak5_1PictureAnalyze/bin/]
>>
>>
>> C stack backtrace & registers:
>> 	 r0 0x000422c0 r1 0x00000000 r2 0x00000016 r3 0xb5c81500
>> 	 r4 0x000422c0 r5 0xb5cc377c r6 0xb5c8144c r7 0xb5c6dc20
>> 	 r8 0x00207250 r9 0xbe8b26fc r10 0x13000000 fp 0xbe8a5984
>> 	 ip 0xb5c81324 sp 0xbe8a58a0 lr 0xb6c53810 pc 0xb5c6cc2c
>> *[0x0]
>> [0x0]
>>
>>
>> Smalltalk stack dump:
>> 0xbe8b26fc I UnixOSProcessAccessor>forkAndExec:stdIn:stdOut:stdErr:argBuf:argOffsets:envBuf:envOffsets:workingDir: 0x23b74d0: a(n) UnixOSProcessAccessor
>> 0xbe8b2778 I UnixProcess>processProxy:forkAndExec:arguments:environment:descriptors: 0x30ad748: a(n) UnixProcess
>> 0xbe8b27ac I ExternalUnixOSProcess>forkChild 0xf33628: a(n) ExternalUnixOSProcess
>> 0xbe8b27cc I ExternalUnixOSProcess class>forkAndExec:arguments:environment: 0x2df3310: a(n) ExternalUnixOSProcess class
>> 0xbe8b27f8 I ExternalUnixOSProcess class>command: 0x2df3310: a(n) ExternalUnixOSProcess class
>> 0xbe8b281c I PictureCompare>killTimelapse 0x34161b0: a(n) PictureCompare
>> 0xbe8b2840 I PictureCompare>waitKillTimelapse 0x34161b0: a(n) PictureCompare
>> 0xbe8b2884 I PictureCompare>analyzeCameraQuarter 0x34161b0: a(n) PictureCompare
>> 0xbe8b289c M PictureCompare>(nil) 0x34161b0: a(n) PictureCompare
>> 0xbe8b28c8 I Compiler>evaluateCue:ifFail: 0xe66008: a(n) Compiler
>> 0xbe8b28f4 I Compiler>evaluateCue:ifFail:logged: 0xe66008: a(n) Compiler
>> 0xbe8b2924 I Compiler>evaluate:in:to:notifying:ifFail:logged: 0xe66008: a(n) Compiler
>> 0xbe8b295c M [] in SmalltalkEditor(TextEditor)>evaluateSelectionAndDo: 0x2dfbbb8: a(n) SmalltalkEditor
>> 0xbe8b2978 M BlockClosure>on:do: 0xe661a0: a(n) BlockClosure
>> 0xbe8af6d4 M SmalltalkEditor(TextEditor)>evaluateSelectionAndDo: 0x2dfbbb8: a(n) SmalltalkEditor
>> 0xbe8af6f8 I SmalltalkEditor(TextEditor)>evaluateSelection 0x2dfbbb8: a(n) SmalltalkEditor
>> 0xbe8af718 I SmalltalkEditor(TextEditor)>doIt 0x2dfbbb8: a(n) SmalltalkEditor
>> 0xbe8af730 M SmalltalkEditor(TextEditor)>doIt: 0x2dfbbb8: a(n) SmalltalkEditor
>> 0xbe8af75c I SmalltalkEditor(TextEditor)>dispatchOnKeyboardEvent: 0x2dfbbb8: a(n) SmalltalkEditor
>> 0xbe8af780 I SmalltalkEditor(TextEditor)>keyStroke: 0x2dfbbb8: a(n) SmalltalkEditor
>> 0xbe8af7a0 M [] in TextMorphForEditView(TextMorph)>keyStroke: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af7c4 M TextMorphForEditView(TextMorph)>handleInteraction:fromEvent: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af7ec I TextMorphForEditView>handleInteraction:fromEvent: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af814 M [] in TextMorphForEditView(TextMorph)>keyStroke: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af834 I StandardToolSet class>codeCompletionAround:textMorph:keyStroke: 0x1714200: a(n) StandardToolSet class
>> 0xbe8af860 I ToolSet class>codeCompletionAround:textMorph:keyStroke: 0x170f7f8: a(n) ToolSet class
>> 0xbe8af884 M TextMorphForEditView(TextMorph)>keyStroke: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af8ac I TextMorphForEditView>keyStroke: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af8d4 I TextMorphForEditView(Morph)>handleKeystroke: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af8fc I TextMorphForEditView(TextMorph)>handleKeystroke: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af918 M KeyboardEvent>sentTo: 0xe65d60: a(n) KeyboardEvent
>> 0xbe8af938 M TextMorphForEditView(Morph)>handleEvent: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af954 M TextMorphForEditView(Morph)>handleFocusEvent: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8af978 M MorphicEventDispatcher>doHandlingForFocusEvent:with: 0xe657e8: a(n) MorphicEventDispatcher
>> 0xbe8ae67c M MorphicEventDispatcher>dispatchFocusEvent:with: 0xe657e8: a(n) MorphicEventDispatcher
>> 0xbe8ae69c M TextMorphForEditView(Morph)>processFocusEvent:using: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8ae6bc M TextMorphForEditView(Morph)>processFocusEvent: 0x341ffd8: a(n) TextMorphForEditView
>> 0xbe8ae6e4 M [] in HandMorph>sendFocusEvent:to:clear: 0x1c46458: a(n) HandMorph
>> 0xbe8ae704 M BlockClosure>ensure: 0xe65868: a(n) BlockClosure
>> 0xbe8ae724 M KeyboardEvent(MorphicEvent)>becomeActiveDuring: 0xe65018: a(n) KeyboardEvent
>> 0xbe8ae74c M [] in HandMorph>sendFocusEvent:to:clear: 0x1c46458: a(n) HandMorph
>> 0xbe8ae76c M BlockClosure>ensure: 0xe65960: a(n) BlockClosure
>> 0xbe8ae78c M HandMorph>becomeActiveDuring: 0x1c46458: a(n) HandMorph
>> 0xbe8ae7b4 M [] in HandMorph>sendFocusEvent:to:clear: 0x1c46458: a(n) HandMorph
>> 0xbe8ae7d4 M BlockClosure>ensure: 0xe65a58: a(n) BlockClosure
>> 0xbe8ae7f4 M PasteUpMorph>becomeActiveDuring: 0x1838780: a(n) PasteUpMorph
>> 0xbe8ae818 M HandMorph>sendFocusEvent:to:clear: 0x1c46458: a(n) HandMorph
>> 0xbe8ae844 M HandMorph>sendEvent:focus:clear: 0x1c46458: a(n) HandMorph
>> 0xbe8ae868 M HandMorph>sendKeyboardEvent: 0x1c46458: a(n) HandMorph
>> 0xbe8ae888 M HandMorph>handleEvent: 0x1c46458: a(n) HandMorph
>> 0xbe8ae8b4 M HandMorph>processEvents 0x1c46458: a(n) HandMorph
>> 0xbe8ae8d0 M [] in WorldState>doOneCycleNowFor: 0x227ba70: a(n) WorldState
>> 0xbe8ae8f4 M Array(SequenceableCollection)>do: 0x13cfa10: a(n) Array
>> 0xbe8ae910 M WorldState>handsDo: 0x227ba70: a(n) WorldState
>> 0xbe8ae930 M WorldState>doOneCycleNowFor: 0x227ba70: a(n) WorldState
>> 0xbe8ae94c M WorldState>doOneCycleFor: 0x227ba70: a(n) WorldState
>> 0xbe8ae968 M PasteUpMorph>doOneCycle 0x1838780: a(n) PasteUpMorph
>> 0xbe8ae980 M [] in MorphicProject>spawnNewProcess 0x23ca268: a(n) MorphicProject
>>   0x17c6208 s [] in BlockClosure>newProcess
>>
>> Most recent primitives
>> scanBitLengths:into:
>> scanBitLengths:into:
>> scanBitLengths:into:
>> scanBitLengths:into:
>> scanBitLengths:into:
>> scanBitLengths:into:
>> scanBitLengths:into:
>> scanBitLengths:into:
>> scanBitLengths:into:
>> bitPosition
>> fixedBlockSizeFor:and:
>> fixedBlockSizeFor:and:
>> maxCode
>> maxCode
>> maxCode
>> maxCode
>> maxCode
>> maxCode
>> maxCode
>> dynamicBlockSizeFor:and:using:and:
>> dynamicBlockSizeFor:and:using:and:
>> dynamicBlockSizeFor:and:using:and:
>> +
>> +
>> bitLengthAt:
>> bitLengthAt:
>> at:
>> at:
>> at:
>> at:
>> at:
>> at:
>> at:
>> at:
>> at:
>> nextBits:put:
>> nextBits:put:
>> at:
>> nextBytePut:
>> flushBits
>> bitXor:
>> growTo:
>> growTo:
>> growTo:
>> growTo:
>> growTo:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> size
>> replaceFrom:to:with:startingAt:
>> size
>> size
>> size
>> initialPC
>> size
>> at:
>> at:
>> at:
>> perform:
>> size
>> newMethod:header:
>> at:put:
>> at:put:
>> at:put:
>> literalAt:
>> objectAt:put:
>> objectAt:put:
>> objectAt:put:
>> at:
>> at:put:
>> at:
>> at:put:
>> at:
>> at:put:
>> withArgs:executeMethod:
>> basicNew
>> basicNew
>> value
>> basicNew
>> size
>> size
>> size
>> replaceFrom:to:with:startingAt:
>> size
>> replaceFrom:to:with:startingAt:
>> value:value:
>> value:value:
>> value:value:
>> indexOfAscii:inString:startingAt:
>> value:value:
>> value:value:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> basicNew
>> getSystemAttribute:
>> findFirstInString:inSet:startingAt:
>> primOpen:writable:
>> shallowCopy
>> identityHash
>> wait
>> **StackOverflow**
>> identityHash
>> basicNew:
>> at:put:
>> basicNew
>> new:
>> signal
>> species
>> basicNew:
>> printString
>> printString
>> printString
>> primWrite:from:startingAt:count:
>> nextPutAll:
>> basicNew
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> =
>> at:
>> at:
>> basicNew
>> ~=
>> getSystemAttribute:
>> findFirstInString:inSet:startingAt:
>> getSystemAttribute:
>> findFirstInString:inSet:startingAt:
>> primLookupEntryIn:name:
>> at:
>> at:
>> at:
>> at:
>> at:
>> basicNew
>> getSystemAttribute:
>> findFirstInString:inSet:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> indexOfAscii:inString:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> getSystemAttribute:
>> findFirstInString:inSet:startingAt:
>> fileNamed:
>> identityHash
>> wait
>> **StackOverflow**
>> identityHash
>> basicNew:
>> new:
>> signal
>> basicNew:
>> primWrite:from:startingAt:count:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> indexOfAscii:inString:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> getSystemAttribute:
>> findFirstInString:inSet:startingAt:
>> primOpen:writable:
>> identityHash
>> wait
>> **StackOverflow**
>> identityHash
>> basicNew:
>> new:
>> signal
>> basicNew:
>> primClose:
>> wait
>> remove:ifAbsent:
>> \\
>> at:
>> identityHash
>> signal
>> stringHash:initialHash:
>> stringHash:initialHash:
>> value:
>> identityHash
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> value:value:
>> =
>> beginsWith:
>> beginsWith:
>> beginsWith:
>> beginsWith:
>> setPathName:
>> getSystemAttribute:
>> findFirstInString:inSet:startingAt:
>> getSystemAttribute:
>> findFirstInString:inSet:startingAt:
>> directoryEntryForName:
>> directoryEntryForName:
>> directoryEntryForName:
>> directoryEntryForName:
>> directoryEntryForName:
>> directoryEntryForName:
>> basicNew
>> getSystemAttribute:
>> basicNew
>> basicNew
>> identityHash
>> primGetCurrentWorkingDirectory
>> value:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> value:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> primSizeOfPointer
>> value:
>>
>> sizeOfPointer
>> value
>> value
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> replaceFrom:to:with:startingAt:
>> new:
>> collect:
>> at:
>> value:value:
>> value:value:
>> at:
>> value:value:
>> at:
>> value:value:
>> replaceFrom:to:with:startingAt:
>> at:
>> at:
>> at:
>> at:
>> at:
>> at:
>> at:
>> at:
>> primGetCurrentWorkingDirectory
>> compare:with:collated:
>> primForkExec:stdIn:stdOut:stdErr:argBuf:argOffsets:envBuf:envOffsets:workingDir:
>>
>> stack page bytes 4096 available headroom 2788 minimum unused headroom 2996
>>
>> 	(Segmentation fault)
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20160827/3163b7c8/attachment.htm


More information about the Squeak-dev mailing list