Hi Sabine,

Which OSSubprocess version are you using? If are using ConfigurationOf to
load it, then please tell me which version from there.
If you are using from baseline, tell me if you are grabbing master, a given
tag , a given commit, etc.
I will assume it is Pharo 32 bits rigth?

I will continue with a more detailed answer once you get back to me with
above questions.

Cheers,




On Mon, Mar 5, 2018 at 1:14 PM, Sabine Manaa <manaa.sab...@gmail.com> wrote:

> Hi Alistair,
>
> thank you! The message (pthread_setschedparam failed: Operation not
> permitted)  is gone now. So Question 1 is solved.
>
> But the crashes (Question 2) are remaining. After calling several
> OSSubprocess commands, Pharo crashes without PharoDebug.log.
>
> Anyone having an Idea what I could do?
>
> Sabine
>
>
>
>
> 2018-03-05 13:07 GMT+01:00 Alistair Grant <akgrant0...@gmail.com>:
>
>> Hi Sabine,
>>
>> The docket container will need to be privileged to adjust thread priority.
>>
>>
>> Cheers,
>> Alistair
>> (on phone)
>>
>> On 5 Mar. 2018 12:44, "Sabine Manaa" <manaa.sab...@gmail.com> wrote:
>>
>> 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/releas
>> es/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(aioEnab
>> le+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)>>vis
>> itNodes:
>>         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
>>
>>
>>
>


-- 
Mariano
http://marianopeck.wordpress.com

Reply via email to