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

David T. Lewis lewis at mail.msen.com
Sat Aug 27 14:23:06 UTC 2016


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 --------------
A non-text attachment was scrubbed...
Name: OSPP.tar.gz
Type: application/octet-stream
Size: 41884 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20160827/167d6c92/OSPP.tar-0001.obj


More information about the Squeak-dev mailing list