We want to run Pharo6 with Ubuntu 16.04 Linux (in a Docker Image) and use
OSSubprocess.

For this, we use this vm: https://get.pharo.org/61+vmT

[1] tells me: "If you are installing under Linux, then you must use a
threaded heartbeat VM"

We also created a file /etc/security/limits.d/pharo.conf and put the
parameters in like described in the message [2] when startup. Also we log
out and in.

Question 1: the message (pthread_setschedparam failed: Operation not
permitted) comes again to the console each time we use OSSubprocess. As far
as I understand, it should disappear. Does this mean, that we did not edit
the pharo.conf correctly?

Question 2: after several uses of OSSubprocess within our application, Pharo
crashes (no PharoDebug.log) with the following messages [3].
How can we avoid this, what are we doing wrong?

Question 3: sometimes (!) when we load (exactly the same code loaded with a
script), we also get a crash, see [4]. Bug? wrong vm? 

I am unhappy with this and it takes a lot of time. What are we doing wrong? 
We want to run Pharo6 with OSSubprocess in Linux within a docker image for
our staging environment.

Help very welcome :-) 
Sabine


[1]https://github.com/marianopeck/OSSubprocess
[2](https://github.com/OpenSmalltalk/opensmalltalk-vm/releases/tag/r3732#linux) 

[3]crash message
 *** buffer overflow detected ***:
/spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x67377)[0xf75f3377]
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x68)[0xf7683708]
/lib/i386-linux-gnu/libc.so.6(+0xf58f8)[0xf76818f8]
/lib/i386-linux-gnu/libc.so.6(+0xf75fa)[0xf76835fa]
/spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo(aioEnable+0x31)[0x80c9811]
/spf/build/pharo-vm/lib/pharo/5.0-201707201942/pharo[0x81215ee]
[0xa1010e0]
[0xa1c2bb8]
[0xa15f50c]
....a lot more



[4] PharoDebug.log
HERE_BE_DRAGONS_HERE
KeyNotFound: key #arg1 not found in Dictionary
5 March 2018 11:31:51.792142 am

VM: unix - i686 - linux-gnu - CoInterpreter VMMaker.oscog-eem.2254 uuid:
4f2c2cce-f4a2-469a-93f1-97ed941df0ad Jul 20 2017
StackToRegisterMappingCogit VMMaker.oscog-eem.2252 uuid:
2f3e9b0e-ecd3-4adf-b092-cce2e2587a5c Jul 20 2017
VM: 201707201942 https://github.com/OpenSmalltalk/opensmalltalk-vm.git $
Date: Thu Jul 20 12:42:21 2017 -0700 $ Plugins: 201707201942
https://github.com/OpenSmalltalk/opensmalltalk-vm.git $

Image: Pharo6.0 [Latest update: #60536]

Dictionary>>errorKeyNotFound:
        Receiver: a Dictionary(#arg3->1 #tmp2->2 )
        Arguments and temporary variables: 
                aKey:   #arg1
        Receiver's instance variables: 
                tally:  2
                array:  {nil. nil. #arg3->1. #tmp2->2. nil}


[ self errorKeyNotFound: key ] in Dictionary>>at:
        Receiver: a Dictionary(#arg3->1 #tmp2->2 )
        Arguments and temporary variables: 
                key:    #arg1
        Receiver's instance variables: 
                tally:  2
                array:  {nil. nil. #arg3->1. #tmp2->2. nil}


Dictionary>>at:ifAbsent:
        Receiver: a Dictionary(#arg3->1 #tmp2->2 )
        Arguments and temporary variables: 
                arg1:   #arg1
                arg2:   [ self errorKeyNotFound: key ]
                tmp1:   nil
        Receiver's instance variables: 
                tally:  2
                array:  {nil. nil. #arg3->1. #tmp2->2. nil}


Dictionary>>at:
        Receiver: a Dictionary(#arg3->1 #tmp2->2 )
        Arguments and temporary variables: 
                key:    #arg1
        Receiver's instance variables: 
                tally:  2
                array:  {nil. nil. #arg3->1. #tmp2->2. nil}


IRPushClosureCopy>>indexForVarNamed:
        Receiver: pushClosureCopyCopiedValues: #() args: #(#arg3)
        Arguments and temporary variables: 
                aName:  #arg1
        Receiver's instance variables: 
                sourceNode:     RBBlockNode([ :arg3 | 
| tmp2 |
tmp2 := arg3.
tmp2
        nextPutAll: arg...etc...
                bytecodeIndex:  nil
                sequence:       an IRSequence (1)
                destination:    an IRSequence (3)
                successor:      nil
                numArgs:        nil
                blockSequence:  an IRSequence (2)
                tempMap:        a Dictionary(#arg3->1 #tmp2->2 )
                copiedValues:   #()
                lastBlockSequence:      an IRSequence (2)
                arguments:      #(#arg3)


IRTranslatorV2>>visitPushTemp:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                tmp:    pushTemp: #arg1
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


IRPushTemp>>accept:
        Receiver: pushTemp: #arg1
        Arguments and temporary variables: 
                aVisitor:       an IRTranslatorV2
        Receiver's instance variables: 
                sourceNode:     RBArgumentNode(arg1)
                bytecodeIndex:  nil
                sequence:       an IRSequence (2)
                name:   #arg1


IRTranslatorV2(IRVisitor)>>visitNode:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                elem:   pushTemp: #arg1
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


IRTranslatorV2>>visitInstruction:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                instr:  pushTemp: #arg1
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


[ :arg2 | self visitInstruction: arg2 ] in
IRTranslatorV2(IRVisitor)>>visitSequence:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                arg1:   an IRSequence (2)
                arg2:   pushTemp: #arg1
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


OrderedCollection>>do:
        Receiver: an OrderedCollection(pushTemp: #arg3 popIntoTemp: #tmp2 
pushTemp:
#tmp2 pushDup pushTemp: ...etc...
        Arguments and temporary variables: 
<<error during printing>
        Receiver's instance variables: 
                array:  an Array(pushTemp: #arg3 popIntoTemp: #tmp2 pushTemp: 
#tmp2
pushDup push...etc...
                firstIndex:     1
                lastIndex:      25


IRSequence>>do:
        Receiver: an IRSequence (2)
        Arguments and temporary variables: 
                aBlock:         [ :arg2 | self visitInstruction: arg2 ]
        Receiver's instance variables: 
                sequence:       an OrderedCollection(pushTemp: #arg3 
popIntoTemp: #tmp2
pushTemp: #tm...etc...
                orderNumber:    2
                method:         an IRMethod


IRTranslatorV2(IRVisitor)>>visitSequence:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                arg1:   an IRSequence (2)
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


IRTranslatorV2>>visitSequence:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                instructionSequence:    an IRSequence (2)
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


IRSequence>>accept:
        Receiver: an IRSequence (2)
        Arguments and temporary variables: 
                aVisitor:       an IRTranslatorV2
        Receiver's instance variables: 
                sequence:       an OrderedCollection(pushTemp: #arg3 
popIntoTemp: #tmp2
pushTemp: #tm...etc...
                orderNumber:    2
                method:         an IRMethod


IRTranslatorV2(IRVisitor)>>visitNode:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                elem:   an IRSequence (2)
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


[ :arg2 | self visitNode: arg2 ] in IRTranslatorV2(IRVisitor)>>visitNodes:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                arg1:   a SortedCollection(an IRSequence (1) an IRSequence (2) 
an
IRSequence (3) ...etc...
                arg2:   an IRSequence (2)
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


SortedCollection(OrderedCollection)>>do:
        Receiver: a SortedCollection(an IRSequence (1) an IRSequence (2) an
IRSequence (3) an IRSequence (4)...etc...
        Arguments and temporary variables: 
<<error during printing>
        Receiver's instance variables: 
                array:  an Array(an IRSequence (1) an IRSequence (2) an 
IRSequence (3) an
IRSequ...etc...
                firstIndex:     1
                lastIndex:      7
                sortBlock:      [ :arg2 :arg3 | arg2 orderNumber <= arg3 
orderNumber ]


IRTranslatorV2(IRVisitor)>>visitNodes:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                arg1:   a SortedCollection(an IRSequence (1) an IRSequence (2) 
an
IRSequence (3) ...etc...
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


IRTranslatorV2>>visitSequences:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                arg1:   a SortedCollection(an IRSequence (1) an IRSequence (2) 
an
IRSequence (3) ...etc...
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


IRTranslatorV2>>visitMethod:
        Receiver: an IRTranslatorV2
        Arguments and temporary variables: 
                anIr:   an IRMethod
        Receiver's instance variables: 
                gen:    an IRBytecodeGenerator
                currentScope:   a Stack(pushClosureCopyCopiedValues: #() args: 
#(#arg3) an
IRMeth...etc...
                trailer:        a CompiledMethodTrailer
                tempVectorStack:        a Stack()
                compilationContext:     a CompilationContext


IRMethod>>accept:
        Receiver: an IRMethod
        Arguments and temporary variables: 
                aVisitor:       an IRTranslatorV2
        Receiver's instance variables: 
                sourceNode:     logError: arg1 inContext: arg2
        self
                logStdErrorDuring: [ :arg3 |...etc...
                startSequence:  an IRSequence (1)
                numArgs:        2
                properties:     nil
                tempMap:        a Dictionary(#arg1->1 #arg2->2 )
                pragmas:        an OrderedCollection()
                additionalLiterals:     an OCLiteralSet(#ifNotNil:)
                compiledMethod:         nil
                compilationContext:     a CompilationContext
                irPrimitive:    primitive 0





--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Reply via email to