Re: [Pharo-project] 1.3 OneCick with Cog VM
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and... So for now: https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
Many thanks. Unfortunately this version throws errors when I try to load my code from MC. "Error: Illegal UTF-8 encoding" from MC when I try to build my image. Can you tell me what is the *most* stable version that I can use with Cog and SS 3.x? On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :- THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298] PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc... Arguments and temporary variables: t1: isEmptyOrNil t2: MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil t3: nil Receiver's instance variables: messageText: 'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc... tag: nil signaler: a Socket[invalidSocketHandle] signalContext: PrimitiveFailed(Exception)>>signal handlerContext: BlockClosure>>on:do: outerContext: nil selector: #primSocketReceiveDataAvailable: [:t1 | | t2 | t1 << self class name. (t2 := self messageText) isEmptyOrNil ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description Receiver: <<error during printing>> Arguments and temporary variables: t1: a WriteStream 'Error' t2: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil String class(SequenceableCollection class)>>new:streamContents: Receiver: String Arguments and temporary variables: t1: 100 t2: [:t1 | | t2 | t1 << self class name. (t2 := self messageText) isEmptyOrNi...etc... t3: a WriteStream 'Error' Receiver's instance variables: superclass: ArrayedCollection methodDict: a MethodDictionary(size 303) format: 2 instanceVariables: nil organization: ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc... subclasses: {ByteString. WideString. Symbol} name: #String classPool: a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc... sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Collections-Strings' traitComposition: {} localSelectors: nil String class(SequenceableCollection class)>>streamContents: Receiver: String Arguments and temporary variables: t1: [:t1 | | t2 | t1 << self class name. (t2 := self messageText) isEmptyOrNi...etc... Receiver's instance variables: superclass: ArrayedCollection methodDict: a MethodDictionary(size 303) format: 2 instanceVariables: nil organization: ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc... subclasses: {ByteString. WideString. Symbol} name: #String classPool: a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc... sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Collections-Strings' traitComposition: {} localSelectors: nil Error(Exception)>>description Receiver: <<error during printing>> Arguments and temporary variables: Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction: Receiver: a StartupUIManager Arguments and temporary variables: <<error during printing> Receiver's instance variables: uiManager: a MorphicUIManager doNotQuitOnRestart: false UnhandledError>>defaultAction Receiver: UnhandledError Arguments and temporary variables: Receiver's instance variables: messageText: nil tag: nil signaler: <<error during printing>> UndefinedObject>>handleSignal: Receiver: nil Arguments and temporary variables: t1: UnhandledError Receiver's instance variables: nil MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: UnhandledError t2: nil Receiver's instance variables: sender: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | ni...etc... MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: UnhandledError t2: nil Receiver's instance variables: sender: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil]...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [self announceNextCommand] UnhandledError(Exception)>>signal Receiver: UnhandledError Arguments and temporary variables: Receiver's instance variables: messageText: nil tag: nil signaler: <<error during printing>> UnhandledError class>>signalForException: Receiver: UnhandledError Arguments and temporary variables: <<error during printing> Receiver's instance variables: superclass: Exception methodDict: a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc... format: 144 instanceVariables: #('exception') organization: ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc... subclasses: nil name: #UnhandledError classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Kernel-Exceptions' traitComposition: nil localSelectors: nil Error>>defaultAction Receiver: <<error during printing>> Arguments and temporary variables: Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil UndefinedObject>>handleSignal: Receiver: nil Arguments and temporary variables: <<error during printing> Receiver's instance variables: nil MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | ni...etc... MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil]...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [self announceNextCommand] Error(Exception)>>signal Receiver: <<error during printing>> Arguments and temporary variables: Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil Error(Exception)>>signal: Receiver: <<error during printing>> Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil CoreMQStompConnection(Object)>>error: Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc... Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: stream: SocketStream[inbuf:4kb/outbuf:4kb] connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc... subscriptions: an OrderedCollection('/topic/parspro-core.juliet-core-events') commandDestination: '/topic/parspro-core.juliet-core-events' process: a Process in nil logger: a JulietLogger [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString. self error: t1. t1 return] in [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil]] repeat. nil] on: Error do: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString. self error: t1. t1 return]] in CoreMQStompConnection>>startAnnouncing Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc... Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: stream: SocketStream[inbuf:4kb/outbuf:4kb] connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc... subscriptions: an OrderedCollection('/topic/parspro-core.juliet-core-events') commandDestination: '/topic/parspro-core.juliet-core-events' process: a Process in nil logger: a JulietLogger BlockClosure>>cull: Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString. self erro...etc... Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: outerContext: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1...etc... startpc: 118 numArgs: 1 [(self tempAt: 2) cull: t1] in MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: sender: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | ni...etc... BlockClosure>>ensure: Receiver: [(self tempAt: 2) cull: t1] Arguments and temporary variables: aBlock: [self tempAt: 3 put: true] complete: nil returnValue: nil Receiver's instance variables: outerContext: MethodContext(ContextPart)>>handleSignal: startpc: 98 numArgs: 0 MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... t2: nil Receiver's instance variables: sender: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | ni...etc... MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... t2: nil Receiver's instance variables: sender: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil]...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [self announceNextCommand] PrimitiveFailed(Exception)>>signal Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc... Arguments and temporary variables: Receiver's instance variables: messageText: 'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc... tag: nil signaler: a Socket[invalidSocketHandle] signalContext: PrimitiveFailed(Exception)>>signal handlerContext: BlockClosure>>on:do: outerContext: nil selector: #primSocketReceiveDataAvailable: PrimitiveFailed class(SelectorException class)>>signalFor: Receiver: PrimitiveFailed Arguments and temporary variables: t1: #primSocketReceiveDataAvailable: Receiver's instance variables: superclass: SelectorException methodDict: a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc... format: 144 instanceVariables: nil organization: ('printing' standardMessageText) subclasses: nil name: #PrimitiveFailed classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Kernel-Exceptions' traitComposition: {} localSelectors: nil Socket(Object)>>primitiveFailed: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: #primSocketReceiveDataAvailable: Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore() Socket(Object)>>primitiveFailed Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore() Socket>>primSocketReceiveDataAvailable: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: #[162 57 106 78 0 0 0 0 128 42 86 0] Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore() Socket>>waitForDataFor:ifClosed:ifTimedOut: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: 45 t2: [ConnectionClosed signal: 'Connection closed while waiting for data.'] t3: [ConnectionTimedOut signal: 'Data receive timed out.'] t4: 2210099 t5: 45000 Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore() Socket>>waitForDataFor: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: 45 Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore() Socket>>receiveDataSignallingTimeout:into:startingAt: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: 45 t2: 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... t3: 796 Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore() SocketStream>>receiveData Receiver: SocketStream[inbuf:4kb/outbuf:4kb] Arguments and temporary variables: Receiver's instance variables: recentlyRead: 716 socket: a Socket[invalidSocketHandle] inBuffer: 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc... outBuffer: 'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
On 9 September 2011 20:31, John Toohey <jt@parspro.com> wrote:
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :-
This is not a crash, it just quits to OS due to error at startup. To avoid imminent leave to OS, put an error handler around your startup code (i guess it is in CoreMQStompConnection somewhere?).
THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298]
PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:         t1:   isEmptyOrNil         t2:   MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil         t3:   nil     Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
[:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNil         ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   a WriteStream 'Error'         t2:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
String class(SequenceableCollection class)>>new:streamContents:     Receiver: String     Arguments and temporary variables:         t1:   100         t2:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...         t3:   a WriteStream 'Error'     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
String class(SequenceableCollection class)>>streamContents:     Receiver: String     Arguments and temporary variables:         t1:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:     Receiver: a StartupUIManager     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         uiManager:    a MorphicUIManager         doNotQuitOnRestart:   false
UnhandledError>>defaultAction     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables:         t1:   UnhandledError     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
UnhandledError(Exception)>>signal     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UnhandledError class>>signalForException:     Receiver: UnhandledError     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         superclass:   Exception         methodDict:   a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc...         format:     144         instanceVariables:    #('exception')         organization:  ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc...         subclasses:   nil         name:  #UnhandledError         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    nil         localSelectors:     nil
Error>>defaultAction     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables: <<error during printing>     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
Error(Exception)>>signal     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
Error(Exception)>>signal:     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
CoreMQStompConnection(Object)>>error:     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
[:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self error: t1.     t1 return] in [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]] repeat.     nil]         on: Error         do: [:t1 |             self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.             self error: t1.             t1 return]] in CoreMQStompConnection>>startAnnouncing     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
BlockClosure>>cull:     Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self erro...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         outerContext:  [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1...etc...         startpc:     118         numArgs:     1
[(self tempAt: 2)         cull: t1] in MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
BlockClosure>>ensure:     Receiver: [(self tempAt: 2)         cull: t1]     Arguments and temporary variables:         aBlock:     [self tempAt: 3 put: true]         complete:    nil         returnValue:   nil     Receiver's instance variables:         outerContext:  MethodContext(ContextPart)>>handleSignal:         startpc:     98         numArgs:     0
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
PrimitiveFailed(Exception)>>signal     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
PrimitiveFailed class(SelectorException class)>>signalFor:     Receiver: PrimitiveFailed     Arguments and temporary variables:         t1:   #primSocketReceiveDataAvailable:     Receiver's instance variables:         superclass:   SelectorException         methodDict:   a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc...         format:     144         instanceVariables:    nil         organization:  ('printing' standardMessageText)
        subclasses:   nil         name:  #PrimitiveFailed         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    {}         localSelectors:     nil
Socket(Object)>>primitiveFailed: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #primSocketReceiveDataAvailable: Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket(Object)>>primitiveFailed     Receiver: a Socket[invalidSocketHandle]     Arguments and temporary variables:
    Receiver's instance variables:         semaphore:    a Semaphore()         socketHandle:  #[162 57 106 78 0 0 0 0 128 42 86 0]         readSemaphore:  a Semaphore()         writeSemaphore:     a Semaphore()
Socket>>primSocketReceiveDataAvailable: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor:ifClosed:ifTimedOut: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â [ConnectionClosed signal: 'Connection closed while waiting for data.'] Â Â Â Â Â Â Â Â t3: Â Â [ConnectionTimedOut signal: 'Data receive timed out.'] Â Â Â Â Â Â Â Â t4: Â Â 2210099 Â Â Â Â Â Â Â Â t5: Â Â 45000 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>receiveDataSignallingTimeout:into:startingAt: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... Â Â Â Â Â Â Â Â t3: Â Â 796 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
SocketStream>>receiveData     Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
This happened after a VM crash, when I try to restart I get this in the log. Isn't the error caused by the isEmptyOrNil primitive? Is there anyway for me to access the image now? On Fri, Sep 9, 2011 at 14:38, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:31, John Toohey <jt@parspro.com> wrote:
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :-
This is not a crash, it just quits to OS due to error at startup. To avoid imminent leave to OS, put an error handler around your startup code (i guess it is in CoreMQStompConnection somewhere?).
THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298]
PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:         t1:   isEmptyOrNil         t2:   MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil         t3:   nil     Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
[:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNil         ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   a WriteStream 'Error'         t2:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
String class(SequenceableCollection class)>>new:streamContents:     Receiver: String     Arguments and temporary variables:         t1:   100         t2:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...         t3:   a WriteStream 'Error'     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
String class(SequenceableCollection class)>>streamContents:     Receiver: String     Arguments and temporary variables:         t1:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:     Receiver: a StartupUIManager     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         uiManager:    a MorphicUIManager         doNotQuitOnRestart:   false
UnhandledError>>defaultAction     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables:         t1:   UnhandledError     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
UnhandledError(Exception)>>signal     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UnhandledError class>>signalForException:     Receiver: UnhandledError     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         superclass:   Exception         methodDict:   a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc...         format:     144         instanceVariables:    #('exception')         organization:  ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc...         subclasses:   nil         name:  #UnhandledError         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    nil         localSelectors:     nil
Error>>defaultAction     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables: <<error during printing>     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
Error(Exception)>>signal     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
Error(Exception)>>signal:     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
CoreMQStompConnection(Object)>>error:     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
[:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self error: t1.     t1 return] in [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]] repeat.     nil]         on: Error         do: [:t1 |             self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.             self error: t1.             t1 return]] in CoreMQStompConnection>>startAnnouncing     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
BlockClosure>>cull:     Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self erro...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         outerContext:  [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1...etc...         startpc:     118         numArgs:     1
[(self tempAt: 2)         cull: t1] in MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
BlockClosure>>ensure:     Receiver: [(self tempAt: 2)         cull: t1]     Arguments and temporary variables:         aBlock:     [self tempAt: 3 put: true]         complete:    nil         returnValue:   nil     Receiver's instance variables:         outerContext:  MethodContext(ContextPart)>>handleSignal:         startpc:     98         numArgs:     0
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
PrimitiveFailed(Exception)>>signal     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
PrimitiveFailed class(SelectorException class)>>signalFor:     Receiver: PrimitiveFailed     Arguments and temporary variables:         t1:   #primSocketReceiveDataAvailable:     Receiver's instance variables:         superclass:   SelectorException         methodDict:   a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc...         format:     144         instanceVariables:    nil         organization:  ('printing' standardMessageText)
        subclasses:   nil         name:  #PrimitiveFailed         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    {}         localSelectors:     nil
Socket(Object)>>primitiveFailed: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #primSocketReceiveDataAvailable: Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket(Object)>>primitiveFailed     Receiver: a Socket[invalidSocketHandle]     Arguments and temporary variables:
    Receiver's instance variables:         semaphore:    a Semaphore()         socketHandle:  #[162 57 106 78 0 0 0 0 128 42 86 0]         readSemaphore:  a Semaphore()         writeSemaphore:     a Semaphore()
Socket>>primSocketReceiveDataAvailable: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor:ifClosed:ifTimedOut: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â [ConnectionClosed signal: 'Connection closed while waiting for data.'] Â Â Â Â Â Â Â Â t3: Â Â [ConnectionTimedOut signal: 'Data receive timed out.'] Â Â Â Â Â Â Â Â t4: Â Â 2210099 Â Â Â Â Â Â Â Â t5: Â Â 45000 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>receiveDataSignallingTimeout:into:startingAt: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... Â Â Â Â Â Â Â Â t3: Â Â 796 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
SocketStream>>receiveData     Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
On 9 September 2011 20:43, John Toohey <jt@parspro.com> wrote:
This happened after a VM crash, when I try to restart I get this in the log. Isn't the error caused by the isEmptyOrNil primitive? Is there anyway for me to access the image now?
an error caused by a primitive failure with invalid socket: SocketStream>>receiveData
Receiver: SocketStream[inbuf:4kb/outbuf:4kb] Arguments and temporary variables:
Receiver's instance variables: recentlyRead: 716 socket: a Socket[invalidSocketHandle] inBuffer: 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc... outBuffer: 'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
looks like your image was saved with socket being open and upon restart it tries to read data from it. This , of course , causing failure and leads to error signaled. If you want to track down the error, there is an option in system settings: 'Make a snapshot of new version before quit On unhandled exception, save a new version of image before quit' in 'Headless mode' group.
On Fri, Sep 9, 2011 at 14:38, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:31, John Toohey <jt@parspro.com> wrote:
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :-
This is not a crash, it just quits to OS due to error at startup. To avoid imminent leave to OS, put an error handler around your startup code (i guess it is in CoreMQStompConnection somewhere?).
THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298]
PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:         t1:   isEmptyOrNil         t2:   MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil         t3:   nil     Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
[:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNil         ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   a WriteStream 'Error'         t2:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
String class(SequenceableCollection class)>>new:streamContents:     Receiver: String     Arguments and temporary variables:         t1:   100         t2:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...         t3:   a WriteStream 'Error'     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
String class(SequenceableCollection class)>>streamContents:     Receiver: String     Arguments and temporary variables:         t1:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:     Receiver: a StartupUIManager     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         uiManager:    a MorphicUIManager         doNotQuitOnRestart:   false
UnhandledError>>defaultAction     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables:         t1:   UnhandledError     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
UnhandledError(Exception)>>signal     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UnhandledError class>>signalForException:     Receiver: UnhandledError     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         superclass:   Exception         methodDict:   a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc...         format:     144         instanceVariables:    #('exception')         organization:  ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc...         subclasses:   nil         name:  #UnhandledError         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    nil         localSelectors:     nil
Error>>defaultAction     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables: <<error during printing>     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
Error(Exception)>>signal     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
Error(Exception)>>signal:     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
CoreMQStompConnection(Object)>>error:     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
[:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self error: t1.     t1 return] in [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]] repeat.     nil]         on: Error         do: [:t1 |             self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.             self error: t1.             t1 return]] in CoreMQStompConnection>>startAnnouncing     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
BlockClosure>>cull:     Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self erro...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         outerContext:  [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1...etc...         startpc:     118         numArgs:     1
[(self tempAt: 2)         cull: t1] in MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
BlockClosure>>ensure:     Receiver: [(self tempAt: 2)         cull: t1]     Arguments and temporary variables:         aBlock:     [self tempAt: 3 put: true]         complete:    nil         returnValue:   nil     Receiver's instance variables:         outerContext:  MethodContext(ContextPart)>>handleSignal:         startpc:     98         numArgs:     0
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
PrimitiveFailed(Exception)>>signal     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
PrimitiveFailed class(SelectorException class)>>signalFor:     Receiver: PrimitiveFailed     Arguments and temporary variables:         t1:   #primSocketReceiveDataAvailable:     Receiver's instance variables:         superclass:   SelectorException         methodDict:   a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc...         format:     144         instanceVariables:    nil         organization:  ('printing' standardMessageText)
        subclasses:   nil         name:  #PrimitiveFailed         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    {}         localSelectors:     nil
Socket(Object)>>primitiveFailed: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #primSocketReceiveDataAvailable: Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket(Object)>>primitiveFailed     Receiver: a Socket[invalidSocketHandle]     Arguments and temporary variables:
    Receiver's instance variables:         semaphore:    a Semaphore()         socketHandle:  #[162 57 106 78 0 0 0 0 128 42 86 0]         readSemaphore:  a Semaphore()         writeSemaphore:     a Semaphore()
Socket>>primSocketReceiveDataAvailable: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor:ifClosed:ifTimedOut: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â [ConnectionClosed signal: 'Connection closed while waiting for data.'] Â Â Â Â Â Â Â Â t3: Â Â [ConnectionTimedOut signal: 'Data receive timed out.'] Â Â Â Â Â Â Â Â t4: Â Â 2210099 Â Â Â Â Â Â Â Â t5: Â Â 45000 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>receiveDataSignallingTimeout:into:startingAt: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... Â Â Â Â Â Â Â Â t3: Â Â 796 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
SocketStream>>receiveData     Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
This is my code :- startAnnouncing process notNil ifTrue: [ ^ self ]. process := [ [ [ [ self announceNextCommand ] on: ConnectionTimedOut do: [ :e | ] ] repeat ] on: Error do: [ :e | self logger error: 'Error in startAnnouncing e --> ', e greaseString. self error: e. e return ]. ] forkAt: Processor highIOPriority named: 'Juliet Stomp Announcer' How can I make this safer, or make it in such a way that the image doesn't crash? Also is the image destroyed now? Is there a way to start it and bypass this code? Thanks for looking into this. On Fri, Sep 9, 2011 at 14:55, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:43, John Toohey <jt@parspro.com> wrote:
This happened after a VM crash, when I try to restart I get this in the log. Isn't the error caused by the isEmptyOrNil primitive? Is there anyway for me to access the image now?
an error caused by a primitive failure with invalid socket:
SocketStream>>receiveData
    Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
looks like your image was saved with socket being open and upon restart it tries to read data from it. This , of course , causing failure and leads to error signaled.
If you want to track down the error, there is an option in system settings: 'Make a snapshot of new version before quit On unhandled exception, save a new version of image before quit' in 'Headless mode' group.
On Fri, Sep 9, 2011 at 14:38, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:31, John Toohey <jt@parspro.com> wrote:
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :-
This is not a crash, it just quits to OS due to error at startup. To avoid imminent leave to OS, put an error handler around your startup code (i guess it is in CoreMQStompConnection somewhere?).
THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298]
PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:         t1:   isEmptyOrNil         t2:   MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil         t3:   nil     Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
[:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNil         ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   a WriteStream 'Error'         t2:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
String class(SequenceableCollection class)>>new:streamContents:     Receiver: String     Arguments and temporary variables:         t1:   100         t2:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...         t3:   a WriteStream 'Error'     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
String class(SequenceableCollection class)>>streamContents:     Receiver: String     Arguments and temporary variables:         t1:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:     Receiver: a StartupUIManager     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         uiManager:    a MorphicUIManager         doNotQuitOnRestart:   false
UnhandledError>>defaultAction     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables:         t1:   UnhandledError     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
UnhandledError(Exception)>>signal     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UnhandledError class>>signalForException:     Receiver: UnhandledError     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         superclass:   Exception         methodDict:   a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc...         format:     144         instanceVariables:    #('exception')         organization:  ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc...         subclasses:   nil         name:  #UnhandledError         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    nil         localSelectors:     nil
Error>>defaultAction     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables: <<error during printing>     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
Error(Exception)>>signal     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
Error(Exception)>>signal:     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
CoreMQStompConnection(Object)>>error:     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
[:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self error: t1.     t1 return] in [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]] repeat.     nil]         on: Error         do: [:t1 |             self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.             self error: t1.             t1 return]] in CoreMQStompConnection>>startAnnouncing     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
BlockClosure>>cull:     Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self erro...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         outerContext:  [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1...etc...         startpc:     118         numArgs:     1
[(self tempAt: 2)         cull: t1] in MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
BlockClosure>>ensure:     Receiver: [(self tempAt: 2)         cull: t1]     Arguments and temporary variables:         aBlock:     [self tempAt: 3 put: true]         complete:    nil         returnValue:   nil     Receiver's instance variables:         outerContext:  MethodContext(ContextPart)>>handleSignal:         startpc:     98         numArgs:     0
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
PrimitiveFailed(Exception)>>signal     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
PrimitiveFailed class(SelectorException class)>>signalFor:     Receiver: PrimitiveFailed     Arguments and temporary variables:         t1:   #primSocketReceiveDataAvailable:     Receiver's instance variables:         superclass:   SelectorException         methodDict:   a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc...         format:     144         instanceVariables:    nil         organization:  ('printing' standardMessageText)
        subclasses:   nil         name:  #PrimitiveFailed         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    {}         localSelectors:     nil
Socket(Object)>>primitiveFailed: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #primSocketReceiveDataAvailable: Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket(Object)>>primitiveFailed     Receiver: a Socket[invalidSocketHandle]     Arguments and temporary variables:
    Receiver's instance variables:         semaphore:    a Semaphore()         socketHandle:  #[162 57 106 78 0 0 0 0 128 42 86 0]         readSemaphore:  a Semaphore()         writeSemaphore:     a Semaphore()
Socket>>primSocketReceiveDataAvailable: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor:ifClosed:ifTimedOut: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â [ConnectionClosed signal: 'Connection closed while waiting for data.'] Â Â Â Â Â Â Â Â t3: Â Â [ConnectionTimedOut signal: 'Data receive timed out.'] Â Â Â Â Â Â Â Â t4: Â Â 2210099 Â Â Â Â Â Â Â Â t5: Â Â 45000 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>receiveDataSignallingTimeout:into:startingAt: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... Â Â Â Â Â Â Â Â t3: Â Â 796 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
SocketStream>>receiveData     Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
On 9 September 2011 21:58, John Toohey <jt@parspro.com> wrote:
This is my code :- startAnnouncing     process notNil ifTrue: [ ^ self ].     process := [         [ [ [ self announceNextCommand ]             on: ConnectionTimedOut             do: [ :e | ] ] repeat ]                 on: Error                 do: [ :e | self logger error: 'Error in startAnnouncing e --> ', e greaseString.                         self error: e.                         e return
this code looking suspicious. but i not sure what it does, do you override #error: method in your class? what it does? if it not overridden, then by sending self error: you causing another error to be signaled, which is not handled by any handler block so, it will signal an unhandled error exception and finally bail out to OS during startup. To simplify things, what happens is following: [ self error: 'hahaha' ] fork. instead it should be like: [ [ self error: 'hahaha' ] on: Error do: [:ex | .. handle error here, and don't let it being unhandled ] ] fork.
                ].         ] forkAt: Processor highIOPriority named: 'Juliet Stomp Announcer'
How can I make this safer, or make it in such a way that the image doesn't crash?
Also is the image destroyed now? Is there a way to start it and bypass this code? Thanks for looking into this.
On Fri, Sep 9, 2011 at 14:55, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:43, John Toohey <jt@parspro.com> wrote:
This happened after a VM crash, when I try to restart I get this in the log. Isn't the error caused by the isEmptyOrNil primitive? Is there anyway for me to access the image now?
an error caused by a primitive failure with invalid socket:
SocketStream>>receiveData
    Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
looks like your image was saved with socket being open and upon restart it tries to read data from it. This , of course , causing failure and leads to error signaled.
If you want to track down the error, there is an option in system settings: 'Make a snapshot of new version before quit On unhandled exception, save a new version of image before quit' in 'Headless mode' group.
On Fri, Sep 9, 2011 at 14:38, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:31, John Toohey <jt@parspro.com> wrote:
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :-
This is not a crash, it just quits to OS due to error at startup. To avoid imminent leave to OS, put an error handler around your startup code (i guess it is in CoreMQStompConnection somewhere?).
THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298]
PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:         t1:   isEmptyOrNil         t2:   MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil         t3:   nil     Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
[:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNil         ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   a WriteStream 'Error'         t2:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
String class(SequenceableCollection class)>>new:streamContents:     Receiver: String     Arguments and temporary variables:         t1:   100         t2:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...         t3:   a WriteStream 'Error'     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
String class(SequenceableCollection class)>>streamContents:     Receiver: String     Arguments and temporary variables:         t1:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:     Receiver: a StartupUIManager     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         uiManager:    a MorphicUIManager         doNotQuitOnRestart:   false
UnhandledError>>defaultAction     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables:         t1:   UnhandledError     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
UnhandledError(Exception)>>signal     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UnhandledError class>>signalForException:     Receiver: UnhandledError     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         superclass:   Exception         methodDict:   a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc...         format:     144         instanceVariables:    #('exception')         organization:  ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc...         subclasses:   nil         name:  #UnhandledError         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    nil         localSelectors:     nil
Error>>defaultAction     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables: <<error during printing>     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
Error(Exception)>>signal     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
Error(Exception)>>signal:     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
CoreMQStompConnection(Object)>>error:     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
[:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self error: t1.     t1 return] in [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]] repeat.     nil]         on: Error         do: [:t1 |             self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.             self error: t1.             t1 return]] in CoreMQStompConnection>>startAnnouncing     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
BlockClosure>>cull:     Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self erro...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         outerContext:  [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1...etc...         startpc:     118         numArgs:     1
[(self tempAt: 2)         cull: t1] in MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
BlockClosure>>ensure:     Receiver: [(self tempAt: 2)         cull: t1]     Arguments and temporary variables:         aBlock:     [self tempAt: 3 put: true]         complete:    nil         returnValue:   nil     Receiver's instance variables:         outerContext:  MethodContext(ContextPart)>>handleSignal:         startpc:     98         numArgs:     0
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
PrimitiveFailed(Exception)>>signal     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
PrimitiveFailed class(SelectorException class)>>signalFor:     Receiver: PrimitiveFailed     Arguments and temporary variables:         t1:   #primSocketReceiveDataAvailable:     Receiver's instance variables:         superclass:   SelectorException         methodDict:   a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc...         format:     144         instanceVariables:    nil         organization:  ('printing' standardMessageText)
        subclasses:   nil         name:  #PrimitiveFailed         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    {}         localSelectors:     nil
Socket(Object)>>primitiveFailed: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #primSocketReceiveDataAvailable: Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket(Object)>>primitiveFailed     Receiver: a Socket[invalidSocketHandle]     Arguments and temporary variables:
    Receiver's instance variables:         semaphore:    a Semaphore()         socketHandle:  #[162 57 106 78 0 0 0 0 128 42 86 0]         readSemaphore:  a Semaphore()         writeSemaphore:     a Semaphore()
Socket>>primSocketReceiveDataAvailable: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor:ifClosed:ifTimedOut: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â [ConnectionClosed signal: 'Connection closed while waiting for data.'] Â Â Â Â Â Â Â Â t3: Â Â [ConnectionTimedOut signal: 'Data receive timed out.'] Â Â Â Â Â Â Â Â t4: Â Â 2210099 Â Â Â Â Â Â Â Â t5: Â Â 45000 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>receiveDataSignallingTimeout:into:startingAt: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... Â Â Â Â Â Â Â Â t3: Â Â 796 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
SocketStream>>receiveData     Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko.
This code is used to keep a socket connection open to an ActiveMQ JMS server. I use the Stomp protocol to send messages from ST to various servers in my cluster via JMS. The self error: e code was just meant to fire up the debugger, so I could trace any errors. I'll remove that now. So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up? On Fri, Sep 9, 2011 at 15:10, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 21:58, John Toohey <jt@parspro.com> wrote:
This is my code :- startAnnouncing     process notNil ifTrue: [ ^ self ].     process := [         [ [ [ self announceNextCommand ]             on: ConnectionTimedOut             do: [ :e | ] ] repeat ]                 on: Error                 do: [ :e | self logger error: 'Error in startAnnouncing e --> ', e greaseString.                         self error: e.                         e return
this code looking suspicious. but i not sure what it does, do you override #error: method in your class? what it does? if it not overridden, then by sending self error: you causing another error to be signaled, which is not handled by any handler block so, it will signal an unhandled error exception and finally bail out to OS during startup. To simplify things, what happens is following:
[ self error: 'hahaha' ] fork. instead it should be like:
[ [ self error: 'hahaha' ] on: Error do: [:ex | .. handle error here, and don't let it being unhandled ] ] fork.
                ].         ] forkAt: Processor highIOPriority named: 'Juliet Stomp Announcer'
How can I make this safer, or make it in such a way that the image doesn't crash?
Also is the image destroyed now? Is there a way to start it and bypass this code? Thanks for looking into this.
On Fri, Sep 9, 2011 at 14:55, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:43, John Toohey <jt@parspro.com> wrote:
This happened after a VM crash, when I try to restart I get this in the log. Isn't the error caused by the isEmptyOrNil primitive? Is there anyway for me to access the image now?
an error caused by a primitive failure with invalid socket:
SocketStream>>receiveData
    Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
looks like your image was saved with socket being open and upon restart it tries to read data from it. This , of course , causing failure and leads to error signaled.
If you want to track down the error, there is an option in system settings: 'Make a snapshot of new version before quit On unhandled exception, save a new version of image before quit' in 'Headless mode' group.
On Fri, Sep 9, 2011 at 14:38, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:31, John Toohey <jt@parspro.com> wrote:
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :-
This is not a crash, it just quits to OS due to error at startup. To avoid imminent leave to OS, put an error handler around your startup code (i guess it is in CoreMQStompConnection somewhere?).
THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298]
PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:         t1:   isEmptyOrNil         t2:   MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil         t3:   nil     Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
[:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNil         ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   a WriteStream 'Error'         t2:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
String class(SequenceableCollection class)>>new:streamContents:     Receiver: String     Arguments and temporary variables:         t1:   100         t2:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...         t3:   a WriteStream 'Error'     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
String class(SequenceableCollection class)>>streamContents:     Receiver: String     Arguments and temporary variables:         t1:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:     Receiver: a StartupUIManager     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         uiManager:    a MorphicUIManager         doNotQuitOnRestart:   false
UnhandledError>>defaultAction     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables:         t1:   UnhandledError     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
UnhandledError(Exception)>>signal     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UnhandledError class>>signalForException:     Receiver: UnhandledError     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         superclass:   Exception         methodDict:   a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc...         format:     144         instanceVariables:    #('exception')         organization:  ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc...         subclasses:   nil         name:  #UnhandledError         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    nil         localSelectors:     nil
Error>>defaultAction     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables: <<error during printing>     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
Error(Exception)>>signal     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
Error(Exception)>>signal:     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
CoreMQStompConnection(Object)>>error:     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
[:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self error: t1.     t1 return] in [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]] repeat.     nil]         on: Error         do: [:t1 |             self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.             self error: t1.             t1 return]] in CoreMQStompConnection>>startAnnouncing     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
BlockClosure>>cull:     Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self erro...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         outerContext:  [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1...etc...         startpc:     118         numArgs:     1
[(self tempAt: 2)         cull: t1] in MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
BlockClosure>>ensure:     Receiver: [(self tempAt: 2)         cull: t1]     Arguments and temporary variables:         aBlock:     [self tempAt: 3 put: true]         complete:    nil         returnValue:   nil     Receiver's instance variables:         outerContext:  MethodContext(ContextPart)>>handleSignal:         startpc:     98         numArgs:     0
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
PrimitiveFailed(Exception)>>signal     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
PrimitiveFailed class(SelectorException class)>>signalFor:     Receiver: PrimitiveFailed     Arguments and temporary variables:         t1:   #primSocketReceiveDataAvailable:     Receiver's instance variables:         superclass:   SelectorException         methodDict:   a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc...         format:     144         instanceVariables:    nil         organization:  ('printing' standardMessageText)
        subclasses:   nil         name:  #PrimitiveFailed         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    {}         localSelectors:     nil
Socket(Object)>>primitiveFailed: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #primSocketReceiveDataAvailable: Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket(Object)>>primitiveFailed     Receiver: a Socket[invalidSocketHandle]     Arguments and temporary variables:
    Receiver's instance variables:         semaphore:    a Semaphore()         socketHandle:  #[162 57 106 78 0 0 0 0 128 42 86 0]         readSemaphore:  a Semaphore()         writeSemaphore:     a Semaphore()
Socket>>primSocketReceiveDataAvailable: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor:ifClosed:ifTimedOut: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â [ConnectionClosed signal: 'Connection closed while waiting for data.'] Â Â Â Â Â Â Â Â t3: Â Â [ConnectionTimedOut signal: 'Data receive timed out.'] Â Â Â Â Â Â Â Â t4: Â Â 2210099 Â Â Â Â Â Â Â Â t5: Â Â 45000 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>receiveDataSignallingTimeout:into:startingAt: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... Â Â Â Â Â Â Â Â t3: Â Â 796 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
SocketStream>>receiveData     Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko.
-- ~JT
On 9 September 2011 22:19, John Toohey <jt@parspro.com> wrote:
This code is used to keep a socket connection open to an ActiveMQ JMS server. I use the Stomp protocol to send messages from ST to various servers in my cluster via JMS. The self error: e code was just meant to fire up the debugger, so I could trace any errors. I'll remove that now.
So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up?
none. rebuild an image.
On Fri, Sep 9, 2011 at 15:10, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 21:58, John Toohey <jt@parspro.com> wrote:
This is my code :- startAnnouncing     process notNil ifTrue: [ ^ self ].     process := [         [ [ [ self announceNextCommand ]             on: ConnectionTimedOut             do: [ :e | ] ] repeat ]                 on: Error                 do: [ :e | self logger error: 'Error in startAnnouncing e --> ', e greaseString.                         self error: e.                         e return
this code looking suspicious. but i not sure what it does, do you override #error: method in your class? what it does? if it not overridden, then by sending self error: you causing another error to be signaled, which is not handled by any handler block so, it will signal an unhandled error exception and finally bail out to OS during startup. To simplify things, what happens is following:
[ self error: 'hahaha' ] fork. instead it should be like:
[ [ self error: 'hahaha' ] on: Error do: [:ex | .. handle error here, and don't let it being unhandled ] ] fork.
                ].         ] forkAt: Processor highIOPriority named: 'Juliet Stomp Announcer'
How can I make this safer, or make it in such a way that the image doesn't crash?
Also is the image destroyed now? Is there a way to start it and bypass this code? Thanks for looking into this.
On Fri, Sep 9, 2011 at 14:55, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:43, John Toohey <jt@parspro.com> wrote:
This happened after a VM crash, when I try to restart I get this in the log. Isn't the error caused by the isEmptyOrNil primitive? Is there anyway for me to access the image now?
an error caused by a primitive failure with invalid socket:
SocketStream>>receiveData
    Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
looks like your image was saved with socket being open and upon restart it tries to read data from it. This , of course , causing failure and leads to error signaled.
If you want to track down the error, there is an option in system settings: 'Make a snapshot of new version before quit On unhandled exception, save a new version of image before quit' in 'Headless mode' group.
On Fri, Sep 9, 2011 at 14:38, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:31, John Toohey <jt@parspro.com> wrote:
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :-
This is not a crash, it just quits to OS due to error at startup. To avoid imminent leave to OS, put an error handler around your startup code (i guess it is in CoreMQStompConnection somewhere?).
THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298]
PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:         t1:   isEmptyOrNil         t2:   MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil         t3:   nil     Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
[:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNil         ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   a WriteStream 'Error'         t2:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
String class(SequenceableCollection class)>>new:streamContents:     Receiver: String     Arguments and temporary variables:         t1:   100         t2:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...         t3:   a WriteStream 'Error'     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
String class(SequenceableCollection class)>>streamContents:     Receiver: String     Arguments and temporary variables:         t1:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:     Receiver: a StartupUIManager     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         uiManager:    a MorphicUIManager         doNotQuitOnRestart:   false
UnhandledError>>defaultAction     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables:         t1:   UnhandledError     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
UnhandledError(Exception)>>signal     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UnhandledError class>>signalForException:     Receiver: UnhandledError     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         superclass:   Exception         methodDict:   a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc...         format:     144         instanceVariables:    #('exception')         organization:  ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc...         subclasses:   nil         name:  #UnhandledError         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    nil         localSelectors:     nil
Error>>defaultAction     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables: <<error during printing>     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
Error(Exception)>>signal     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
Error(Exception)>>signal:     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
CoreMQStompConnection(Object)>>error:     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
[:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self error: t1.     t1 return] in [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]] repeat.     nil]         on: Error         do: [:t1 |             self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.             self error: t1.             t1 return]] in CoreMQStompConnection>>startAnnouncing     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
BlockClosure>>cull:     Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self erro...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         outerContext:  [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1...etc...         startpc:     118         numArgs:     1
[(self tempAt: 2)         cull: t1] in MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
BlockClosure>>ensure:     Receiver: [(self tempAt: 2)         cull: t1]     Arguments and temporary variables:         aBlock:     [self tempAt: 3 put: true]         complete:    nil         returnValue:   nil     Receiver's instance variables:         outerContext:  MethodContext(ContextPart)>>handleSignal:         startpc:     98         numArgs:     0
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
PrimitiveFailed(Exception)>>signal     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
PrimitiveFailed class(SelectorException class)>>signalFor:     Receiver: PrimitiveFailed     Arguments and temporary variables:         t1:   #primSocketReceiveDataAvailable:     Receiver's instance variables:         superclass:   SelectorException         methodDict:   a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc...         format:     144         instanceVariables:    nil         organization:  ('printing' standardMessageText)
        subclasses:   nil         name:  #PrimitiveFailed         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    {}         localSelectors:     nil
Socket(Object)>>primitiveFailed: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #primSocketReceiveDataAvailable: Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket(Object)>>primitiveFailed     Receiver: a Socket[invalidSocketHandle]     Arguments and temporary variables:
    Receiver's instance variables:         semaphore:    a Semaphore()         socketHandle:  #[162 57 106 78 0 0 0 0 128 42 86 0]         readSemaphore:  a Semaphore()         writeSemaphore:     a Semaphore()
Socket>>primSocketReceiveDataAvailable: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor:ifClosed:ifTimedOut: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â [ConnectionClosed signal: 'Connection closed while waiting for data.'] Â Â Â Â Â Â Â Â t3: Â Â [ConnectionTimedOut signal: 'Data receive timed out.'] Â Â Â Â Â Â Â Â t4: Â Â 2210099 Â Â Â Â Â Â Â Â t5: Â Â 45000 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>receiveDataSignallingTimeout:into:startingAt: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... Â Â Â Â Â Â Â Â t3: Â Â 796 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
SocketStream>>receiveData     Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko.
-- ~JT
-- Best regards, Igor Stasenko.
The joys of ST :-( Pharo really needs some kind of safe mode, that you can boot into, to fix these kinds of problems. Thanks again for you help. On Fri, Sep 9, 2011 at 16:59, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 22:19, John Toohey <jt@parspro.com> wrote:
This code is used to keep a socket connection open to an ActiveMQ JMS server. I use the Stomp protocol to send messages from ST to various servers in my cluster via JMS. The self error: e code was just meant to fire up the debugger, so I could trace any errors. I'll remove that now.
So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up?
none. rebuild an image.
On Fri, Sep 9, 2011 at 15:10, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 21:58, John Toohey <jt@parspro.com> wrote:
This is my code :- startAnnouncing     process notNil ifTrue: [ ^ self ].     process := [         [ [ [ self announceNextCommand ]             on: ConnectionTimedOut             do: [ :e | ] ] repeat ]                 on: Error                 do: [ :e | self logger error: 'Error in startAnnouncing e --> ', e greaseString.                         self error: e.                         e return
this code looking suspicious. but i not sure what it does, do you override #error: method in your class? what it does? if it not overridden, then by sending self error: you causing another error to be signaled, which is not handled by any handler block so, it will signal an unhandled error exception and finally bail out to OS during startup. To simplify things, what happens is following:
[ self error: 'hahaha' ] fork. instead it should be like:
[ [ self error: 'hahaha' ] on: Error do: [:ex | .. handle error here, and don't let it being unhandled ] ] fork.
                ].         ] forkAt: Processor highIOPriority named: 'Juliet Stomp Announcer'
How can I make this safer, or make it in such a way that the image doesn't crash?
Also is the image destroyed now? Is there a way to start it and bypass this code? Thanks for looking into this.
On Fri, Sep 9, 2011 at 14:55, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:43, John Toohey <jt@parspro.com> wrote:
This happened after a VM crash, when I try to restart I get this in the log. Isn't the error caused by the isEmptyOrNil primitive? Is there anyway for me to access the image now?
an error caused by a primitive failure with invalid socket:
SocketStream>>receiveData
    Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
looks like your image was saved with socket being open and upon restart it tries to read data from it. This , of course , causing failure and leads to error signaled.
If you want to track down the error, there is an option in system settings: 'Make a snapshot of new version before quit On unhandled exception, save a new version of image before quit' in 'Headless mode' group.
On Fri, Sep 9, 2011 at 14:38, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:31, John Toohey <jt@parspro.com> wrote:
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :-
This is not a crash, it just quits to OS due to error at startup. To avoid imminent leave to OS, put an error handler around your startup code (i guess it is in CoreMQStompConnection somewhere?).
THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298]
PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:         t1:   isEmptyOrNil         t2:   MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil         t3:   nil     Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
[:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNil         ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   a WriteStream 'Error'         t2:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
String class(SequenceableCollection class)>>new:streamContents:     Receiver: String     Arguments and temporary variables:         t1:   100         t2:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...         t3:   a WriteStream 'Error'     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
String class(SequenceableCollection class)>>streamContents:     Receiver: String     Arguments and temporary variables:         t1:   [:t1 | | t2 | t1 << self class name.     (t2 := self messageText) isEmptyOrNi...etc...     Receiver's instance variables:         superclass:   ArrayedCollection         methodDict:   a MethodDictionary(size 303)         format:     2         instanceVariables:    nil         organization:  ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc...         subclasses:   {ByteString. WideString. Symbol}         name:  #String         classPool:    a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc...         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Collections-Strings'         traitComposition:    {}         localSelectors:     nil
Error(Exception)>>description     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction:     Receiver: a StartupUIManager     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         uiManager:    a MorphicUIManager         doNotQuitOnRestart:   false
UnhandledError>>defaultAction     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables:         t1:   UnhandledError     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   UnhandledError         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
UnhandledError(Exception)>>signal     Receiver: UnhandledError     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   nil         tag:   nil         signaler:    <<error during printing>>
UnhandledError class>>signalForException:     Receiver: UnhandledError     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         superclass:   Exception         methodDict:   a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc...         format:     144         instanceVariables:    #('exception')         organization:  ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc...         subclasses:   nil         name:  #UnhandledError         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    nil         localSelectors:     nil
Error>>defaultAction     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
UndefinedObject>>handleSignal:     Receiver: nil     Arguments and temporary variables: <<error during printing>     Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables: <<error during printing>     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
Error(Exception)>>signal     Receiver: <<error during printing>>     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
Error(Exception)>>signal:     Receiver: <<error during printing>>     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         messageText:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc...         tag:   nil         signaler:    a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc...         signalContext:  Error(Exception)>>signal         handlerContext:     nil         outerContext:  nil
CoreMQStompConnection(Object)>>error:     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
[:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self error: t1.     t1 return] in [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]] repeat.     nil]         on: Error         do: [:t1 |             self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.             self error: t1.             t1 return]] in CoreMQStompConnection>>startAnnouncing     Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         stream:     SocketStream[inbuf:4kb/outbuf:4kb]         connectResponse:     CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc...         subscriptions:  an OrderedCollection('/topic/parspro-core.juliet-core-events')         commandDestination:   '/topic/parspro-core.juliet-core-events'         process:     a Process in nil         logger:     a JulietLogger
BlockClosure>>cull:     Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString.     self erro...etc...     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         outerContext:  [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1...etc...         startpc:     118         numArgs:     1
[(self tempAt: 2)         cull: t1] in MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
BlockClosure>>ensure:     Receiver: [(self tempAt: 2)         cull: t1]     Arguments and temporary variables:         aBlock:     [self tempAt: 3 put: true]         complete:    nil         returnValue:   nil     Receiver's instance variables:         outerContext:  MethodContext(ContextPart)>>handleSignal:         startpc:     98         numArgs:     0
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal:     Receiver: BlockClosure>>on:do:     Arguments and temporary variables:         t1:   PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc...         t2:   nil     Receiver's instance variables:         sender:     [[[self announceNextCommand]         on: ConnectionTimedOut         do: [:t1 | nil]...etc...         pc:   17         stackp:     3         method:     (BlockClosure>>#on:do: "a CompiledMethod(137625600)")         closureOrNil:  nil         receiver:    [self announceNextCommand]
PrimitiveFailed(Exception)>>signal     Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc...     Arguments and temporary variables:
    Receiver's instance variables:         messageText:   'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc...         tag:   nil         signaler:    a Socket[invalidSocketHandle]         signalContext:  PrimitiveFailed(Exception)>>signal         handlerContext:     BlockClosure>>on:do:         outerContext:  nil         selector:    #primSocketReceiveDataAvailable:
PrimitiveFailed class(SelectorException class)>>signalFor:     Receiver: PrimitiveFailed     Arguments and temporary variables:         t1:   #primSocketReceiveDataAvailable:     Receiver's instance variables:         superclass:   SelectorException         methodDict:   a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc...         format:     144         instanceVariables:    nil         organization:  ('printing' standardMessageText)
        subclasses:   nil         name:  #PrimitiveFailed         classPool:    nil         sharedPools:   nil         environment:   a SystemDictionary(lots of globals)         category:    #'Kernel-Exceptions'         traitComposition:    {}         localSelectors:     nil
Socket(Object)>>primitiveFailed: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #primSocketReceiveDataAvailable: Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket(Object)>>primitiveFailed     Receiver: a Socket[invalidSocketHandle]     Arguments and temporary variables:
    Receiver's instance variables:         semaphore:    a Semaphore()         socketHandle:  #[162 57 106 78 0 0 0 0 128 42 86 0]         readSemaphore:  a Semaphore()         writeSemaphore:     a Semaphore()
Socket>>primSocketReceiveDataAvailable: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor:ifClosed:ifTimedOut: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â [ConnectionClosed signal: 'Connection closed while waiting for data.'] Â Â Â Â Â Â Â Â t3: Â Â [ConnectionTimedOut signal: 'Data receive timed out.'] Â Â Â Â Â Â Â Â t4: Â Â 2210099 Â Â Â Â Â Â Â Â t5: Â Â 45000 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>waitForDataFor: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
Socket>>receiveDataSignallingTimeout:into:startingAt: Â Â Â Â Receiver: a Socket[invalidSocketHandle] Â Â Â Â Arguments and temporary variables: Â Â Â Â Â Â Â Â t1: Â Â 45 Â Â Â Â Â Â Â Â t2: Â Â 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... Â Â Â Â Â Â Â Â t3: Â Â 796 Â Â Â Â Receiver's instance variables: Â Â Â Â Â Â Â Â semaphore: Â Â Â a Semaphore() Â Â Â Â Â Â Â Â socketHandle: Â #[162 57 106 78 0 0 0 0 128 42 86 0] Â Â Â Â Â Â Â Â readSemaphore: Â a Semaphore() Â Â Â Â Â Â Â Â writeSemaphore: Â Â Â Â a Semaphore()
SocketStream>>receiveData     Receiver: SocketStream[inbuf:4kb/outbuf:4kb]     Arguments and temporary variables:
    Receiver's instance variables:         recentlyRead:  716         socket:     a Socket[invalidSocketHandle]         inBuffer:    'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc...         outBuffer:    'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
    https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko.
-- ~JT
-- Best regards, Igor Stasenko.
-- ~JT
On Sep 9, 2011, at 11:15 PM, John Toohey wrote:
The joys of ST :-( Pharo really needs some kind of safe mode, that you can boot into, to fix these kinds of problems. Thanks again for you help.
We are working on that. Did you see the fix in startup and all the work to make sure that you can work on headless mode ie not crashing your image because a pop up arise on a headless server... Stef
On Fri, Sep 9, 2011 at 16:59, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 22:19, John Toohey <jt@parspro.com> wrote:
This code is used to keep a socket connection open to an ActiveMQ JMS server. I use the Stomp protocol to send messages from ST to various servers in my cluster via JMS. The self error: e code was just meant to fire up the debugger, so I could trace any errors. I'll remove that now.
So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up?
none. rebuild an image.
On Fri, Sep 9, 2011 at 15:10, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 21:58, John Toohey <jt@parspro.com> wrote:
This is my code :- startAnnouncing process notNil ifTrue: [ ^ self ]. process := [ [ [ [ self announceNextCommand ] on: ConnectionTimedOut do: [ :e | ] ] repeat ] on: Error do: [ :e | self logger error: 'Error in startAnnouncing e --> ', e greaseString. self error: e. e return
this code looking suspicious. but i not sure what it does, do you override #error: method in your class? what it does? if it not overridden, then by sending self error: you causing another error to be signaled, which is not handled by any handler block so, it will signal an unhandled error exception and finally bail out to OS during startup. To simplify things, what happens is following:
[ self error: 'hahaha' ] fork. instead it should be like:
[ [ self error: 'hahaha' ] on: Error do: [:ex | .. handle error here, and don't let it being unhandled ] ] fork.
]. ] forkAt: Processor highIOPriority named: 'Juliet Stomp Announcer'
How can I make this safer, or make it in such a way that the image doesn't crash?
Also is the image destroyed now? Is there a way to start it and bypass this code? Thanks for looking into this.
On Fri, Sep 9, 2011 at 14:55, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:43, John Toohey <jt@parspro.com> wrote:
This happened after a VM crash, when I try to restart I get this in the log. Isn't the error caused by the isEmptyOrNil primitive? Is there anyway for me to access the image now?
an error caused by a primitive failure with invalid socket:
SocketStream>>receiveData
Receiver: SocketStream[inbuf:4kb/outbuf:4kb] Arguments and temporary variables:
Receiver's instance variables: recentlyRead: 716 socket: a Socket[invalidSocketHandle] inBuffer: 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc... outBuffer: 'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
looks like your image was saved with socket being open and upon restart it tries to read data from it. This , of course , causing failure and leads to error signaled.
If you want to track down the error, there is an option in system settings: 'Make a snapshot of new version before quit On unhandled exception, save a new version of image before quit' in 'Headless mode' group.
On Fri, Sep 9, 2011 at 14:38, Igor Stasenko <siguctua@gmail.com> wrote:
On 9 September 2011 20:31, John Toohey <jt@parspro.com> wrote:
I am experiencing a lot of random crashes with this VM on OSX 10.6. It just crashed again, and this time I cannot get it to restart. It seems to be crashing in a socket receive class. The stack trace is here :-
This is not a crash, it just quits to OS due to error at startup. To avoid imminent leave to OS, put an error handler around your startup code (i guess it is in CoreMQStompConnection somewhere?).
THERE_BE_DRAGONS_HERE MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil 9 September 2011 2:28:41 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter VMMaker-oscog-IgorStasenko.123] 21.0 Image: Pharo1.3 [Latest update: #13298]
PrimitiveFailed(Object)>>doesNotUnderstand: #isEmptyOrNil Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc... Arguments and temporary variables: t1: isEmptyOrNil t2: MessageNotUnderstood: PrimitiveFailed>>isEmptyOrNil t3: nil Receiver's instance variables: messageText: 'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc... tag: nil signaler: a Socket[invalidSocketHandle] signalContext: PrimitiveFailed(Exception)>>signal handlerContext: BlockClosure>>on:do: outerContext: nil selector: #primSocketReceiveDataAvailable:
[:t1 | | t2 | t1 << self class name. (t2 := self messageText) isEmptyOrNil ifFalse: [t1 << ': ' << t2]] in Error(Exception)>>description Receiver: <<error during printing>> Arguments and temporary variables: t1: a WriteStream 'Error' t2: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil
String class(SequenceableCollection class)>>new:streamContents: Receiver: String Arguments and temporary variables: t1: 100 t2: [:t1 | | t2 | t1 << self class name. (t2 := self messageText) isEmptyOrNi...etc... t3: a WriteStream 'Error' Receiver's instance variables: superclass: ArrayedCollection methodDict: a MethodDictionary(size 303) format: 2 instanceVariables: nil organization: ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc... subclasses: {ByteString. WideString. Symbol} name: #String classPool: a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc... sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Collections-Strings' traitComposition: {} localSelectors: nil
String class(SequenceableCollection class)>>streamContents: Receiver: String Arguments and temporary variables: t1: [:t1 | | t2 | t1 << self class name. (t2 := self messageText) isEmptyOrNi...etc... Receiver's instance variables: superclass: ArrayedCollection methodDict: a MethodDictionary(size 303) format: 2 instanceVariables: nil organization: ('*Compiler-Kernel' inviolateInstanceVariableNames isLegalInstVar...etc... subclasses: {ByteString. WideString. Symbol} name: #String classPool: a Dictionary(#AsciiOrder->#[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...etc... sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Collections-Strings' traitComposition: {} localSelectors: nil
Error(Exception)>>description Receiver: <<error during printing>> Arguments and temporary variables:
Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil
StartupUIManager(NonInteractiveUIManager)>>unhandledErrorDefaultAction: Receiver: a StartupUIManager Arguments and temporary variables: <<error during printing> Receiver's instance variables: uiManager: a MorphicUIManager doNotQuitOnRestart: false
UnhandledError>>defaultAction Receiver: UnhandledError Arguments and temporary variables:
Receiver's instance variables: messageText: nil tag: nil signaler: <<error during printing>>
UndefinedObject>>handleSignal: Receiver: nil Arguments and temporary variables: t1: UnhandledError Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: UnhandledError t2: nil Receiver's instance variables: sender: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: UnhandledError t2: nil Receiver's instance variables: sender: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil]...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [self announceNextCommand]
UnhandledError(Exception)>>signal Receiver: UnhandledError Arguments and temporary variables:
Receiver's instance variables: messageText: nil tag: nil signaler: <<error during printing>>
UnhandledError class>>signalForException: Receiver: UnhandledError Arguments and temporary variables: <<error during printing> Receiver's instance variables: superclass: Exception methodDict: a MethodDictionary(#defaultAction->(UnhandledError>>#defaultAction ...etc... format: 144 instanceVariables: #('exception') organization: ('*UIManager' defaultAction) ('as yet unclassified' exception exc...etc... subclasses: nil name: #UnhandledError classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Kernel-Exceptions' traitComposition: nil localSelectors: nil
Error>>defaultAction Receiver: <<error during printing>> Arguments and temporary variables:
Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil
UndefinedObject>>handleSignal: Receiver: nil Arguments and temporary variables: <<error during printing> Receiver's instance variables: nil
MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: <<error during printing> Receiver's instance variables: sender: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil]...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [self announceNextCommand]
Error(Exception)>>signal Receiver: <<error during printing>> Arguments and temporary variables:
Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil
Error(Exception)>>signal: Receiver: <<error during printing>> Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: messageText: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a S...etc... tag: nil signaler: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-T...etc... signalContext: Error(Exception)>>signal handlerContext: nil outerContext: nil
CoreMQStompConnection(Object)>>error: Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc... Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: stream: SocketStream[inbuf:4kb/outbuf:4kb] connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc... subscriptions: an OrderedCollection('/topic/parspro-core.juliet-core-events') commandDestination: '/topic/parspro-core.juliet-core-events' process: a Process in nil logger: a JulietLogger
[:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString. self error: t1. t1 return] in [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil]] repeat. nil] on: Error do: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString. self error: t1. t1 return]] in CoreMQStompConnection>>startAnnouncing Receiver: a CoreMQStompConnection connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.lo...etc... Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: stream: SocketStream[inbuf:4kb/outbuf:4kb] connectResponse: CONNECTED session: ID:John-Tooheys-MacBook-Pro.local-56368-131...etc... subscriptions: an OrderedCollection('/topic/parspro-core.juliet-core-events') commandDestination: '/topic/parspro-core.juliet-core-events' process: a Process in nil logger: a JulietLogger
BlockClosure>>cull: Receiver: [:t1 | self logger error: 'Error in startAnnouncing e --> ' , t1 greaseString. self erro...etc... Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: outerContext: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1...etc... startpc: 118 numArgs: 1
[(self tempAt: 2) cull: t1] in MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... Receiver's instance variables: sender: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | ni...etc...
BlockClosure>>ensure: Receiver: [(self tempAt: 2) cull: t1] Arguments and temporary variables: aBlock: [self tempAt: 3 put: true] complete: nil returnValue: nil Receiver's instance variables: outerContext: MethodContext(ContextPart)>>handleSignal: startpc: 98 numArgs: 0
MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... t2: nil Receiver's instance variables: sender: [[[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | ni...etc...
MethodContext(ContextPart)>>handleSignal: Receiver: BlockClosure>>on:do: Arguments and temporary variables: t1: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[inv...etc... t2: nil Receiver's instance variables: sender: [[[self announceNextCommand] on: ConnectionTimedOut do: [:t1 | nil]...etc... pc: 17 stackp: 3 method: (BlockClosure>>#on:do: "a CompiledMethod(137625600)") closureOrNil: nil receiver: [self announceNextCommand]
PrimitiveFailed(Exception)>>signal Receiver: PrimitiveFailed: primitive #primSocketReceiveDataAvailable: in a Socket[invalidSocketHandl...etc... Arguments and temporary variables:
Receiver's instance variables: messageText: 'primitive #primSocketReceiveDataAvailable: in a Socket[invalidSoc...etc... tag: nil signaler: a Socket[invalidSocketHandle] signalContext: PrimitiveFailed(Exception)>>signal handlerContext: BlockClosure>>on:do: outerContext: nil selector: #primSocketReceiveDataAvailable:
PrimitiveFailed class(SelectorException class)>>signalFor: Receiver: PrimitiveFailed Arguments and temporary variables: t1: #primSocketReceiveDataAvailable: Receiver's instance variables: superclass: SelectorException methodDict: a MethodDictionary(#standardMessageText->(PrimitiveFailed>>#standar...etc... format: 144 instanceVariables: nil organization: ('printing' standardMessageText)
subclasses: nil name: #PrimitiveFailed classPool: nil sharedPools: nil environment: a SystemDictionary(lots of globals) category: #'Kernel-Exceptions' traitComposition: {} localSelectors: nil
Socket(Object)>>primitiveFailed: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: #primSocketReceiveDataAvailable: Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore()
Socket(Object)>>primitiveFailed Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables:
Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore()
Socket>>primSocketReceiveDataAvailable: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: #[162 57 106 78 0 0 0 0 128 42 86 0] Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore()
Socket>>waitForDataFor:ifClosed:ifTimedOut: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: 45 t2: [ConnectionClosed signal: 'Connection closed while waiting for data.'] t3: [ConnectionTimedOut signal: 'Data receive timed out.'] t4: 2210099 t5: 45000 Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore()
Socket>>waitForDataFor: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: 45 Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore()
Socket>>receiveDataSignallingTimeout:into:startingAt: Receiver: a Socket[invalidSocketHandle] Arguments and temporary variables: t1: 45 t2: 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750288-4:...etc... t3: 796 Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[162 57 106 78 0 0 0 0 128 42 86 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore()
SocketStream>>receiveData Receiver: SocketStream[inbuf:4kb/outbuf:4kb] Arguments and temporary variables:
Receiver's instance variables: recentlyRead: 716 socket: a Socket[invalidSocketHandle] inBuffer: 'CONNECTED session:ID:John-Tooheys-MacBook-Pro.local-56368-1315585750...etc... outBuffer: 'SUBSCRIBE destination: /topic/parspro-core.juliet-core-events
On Thu, Sep 8, 2011 at 10:05, Marcus Denker <marcus.denker@inria.fr> wrote:
On Sep 8, 2011, at 3:59 PM, John Toohey wrote:
Hi, Is there a 1.3 OneClick build available with the Cog VM, or should I just down load the linux and OSX Cog builds from the Jenkins server?
The script on the hudson is old... we need to update it. And move everything from hudson to jenkins. And, and...
So for now:
https://gforge.inria.fr/frs/download.php/28922/Pharo-1.3-OneClick.zip
hand-build one-click with Cog as build from https://ci.lille.inria.fr/pharo/view/Cog/
often run into problems with having different VMs/Plugin on different servers, and like the idea of having both Liux and OSX supported in one package, where I can just update the image.
-- Marcus Denker -- http://marcusdenker.de
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko AKA sig.
-- ~JT
-- Best regards, Igor Stasenko.
-- ~JT
-- Best regards, Igor Stasenko.
-- ~JT
John Toohey wrote:
So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up?
I don't know if it'd be worth it, but if you're talking about a lot of work lost, it sounds like you could build a debug VM and bypass the loading code from the debugger (like I just had to do). Sean -- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p3802970.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
On 10 September 2011 01:41, Sean P. DeNigris <sean@clipperadams.com> wrote:
John Toohey wrote:
So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up?
I don't know if it'd be worth it, but if you're talking about a lot of work lost, it sounds like you could build a debug VM and bypass the loading code from the debugger (like I just had to do).
has any of you heard a word 'backup'? :)
Sean
-- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p3802970.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- Best regards, Igor Stasenko.
Igor Stasenko wrote:
has any of you heard a word 'backup'? :)
Now Igor, where's your sense of adventure? -- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p3803110.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
On 10 September 2011 03:55, Sean P. DeNigris <sean@clipperadams.com> wrote:
Igor Stasenko wrote:
has any of you heard a word 'backup'? :)
Now Igor, where's your sense of adventure?
hehe.. well. lost code & time is definitely not exciting adventure :)
-- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p3803110.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- Best regards, Igor Stasenko.
Igor Stasenko wrote:
hehe.. well. lost code & time is definitely not exciting adventure :)
:) I actually had just started porting my projects from Pharo 1.2 to 1.3 and I didn't really have any data in the frozen image. But, I realized that if an important (possibly not-backed-up?) image ever froze on me, I'd be totally helpless. It felt like an important psychological and intellectual exercise to know that I could go down the VM rabbit hole when needed and rescue myself no matter how badly I messed something up in the image. So, I drew a line in the sand and decided I would do whatever it took to figure it out. Having come out the other side, nothing seems impossible (although I got really clear why I made the 15 year journey from C that has landed me on Smalltalk - compile cycles suck, for one thing). I would recommend everyone dive into the VM. I feel much more at ease now, and look forward to possibly contributing to the VM (beyond just filing a lot of bug reports, lol). Sean p.s. It's awesome to have a cadre of VM experts at our fingertips. I got near-immediate support from Mariano, Elliot, and Igor; which made all the difference. -- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p3805097.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
I saw the screencast where Mariano did something like that. I had just built the image, when the original VM crash happened, so it wasn't that much of a deal to rebuild it. I would like to see some form of safe-mode boot for Pharo, so that just the kernel would be loaded. ST images are all about state, and when production servers go down, it would be nice to be able to start them up, and rewind the app. For normal apps this is not an issue, but when forking processes for socket IO or a FFI call, it is possible to bring it down (or in my case where I think my error handling code caused an error) , and moving in a backup image is not always enough. I would like to get involved in such a project, if there was interest for it. On Fri, Sep 9, 2011 at 18:41, Sean P. DeNigris <sean@clipperadams.com> wrote:
John Toohey wrote:
So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up?
I don't know if it'd be worth it, but if you're talking about a lot of work lost, it sounds like you could build a debug VM and bypass the loading code from the debugger (like I just had to do).
Sean
-- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p3802970.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- ~JT
On Sep 10, 2011, at 9:00 PM, John Toohey wrote:
I saw the screencast where Mariano did something like that. I had just built the image, when the original VM crash happened, so it wasn't that much of a deal to rebuild it.
I would like to see some form of safe-mode boot for Pharo, so that just the kernel would be loaded. ST images are all about state, and when production servers go down, it would be nice to be able to start them up, and rewind the app. For normal apps this is not an issue, but when forking processes for socket IO or a FFI call, it is possible to bring it down (or in my case where I think my error handling code caused an error) , and moving in a backup image is not always enough.
I would like to be able to rebuild the kernel at startup. Now I should work on it but I got new responsibilities and they take my time. Stef
I would like to get involved in such a project, if there was interest for it.
On Fri, Sep 9, 2011 at 18:41, Sean P. DeNigris <sean@clipperadams.com> wrote:
John Toohey wrote:
So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up?
I don't know if it'd be worth it, but if you're talking about a lot of work lost, it sounds like you could build a debug VM and bypass the loading code from the debugger (like I just had to do).
Sean
-- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p3802970.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- ~JT
Stef, It's lonely at the top :) Best wishes with your new opportunities. As a linux user, one thing I cringe about is opening a second image and creating a COMPLETE mess of my image. The IDE really needs to detect the problem and refuse to open before badness happens. Otherwise, I make backups (not as often as I should) and good use of recovering lost changes. As for the general problem of building images, I see it much as lack of tools. We need something (Migrate being my evolving solution) that looks at what is installed and can get it into the next image. Metacello is a welcome way to install complicated stuff from others, by *my* code is presumably always something that I want to save and load w/o hassles. FWIW, I have a love-hate relationship with R, and that community is facing a similar problem, and their presumed solution appears to be something that will analyze and build. I realize R's language is awful (raises doubt), but the system as a whole is quite impressive (restores faith). Bill ________________________________________ From: pharo-project-bounces@lists.gforge.inria.fr [pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Stéphane Ducasse [stephane.ducasse@inria.fr] Sent: Saturday, September 10, 2011 4:37 PM To: Pharo-project@lists.gforge.inria.fr Subject: Re: [Pharo-project] 1.3 OneCick with Cog VM On Sep 10, 2011, at 9:00 PM, John Toohey wrote:
I saw the screencast where Mariano did something like that. I had just built the image, when the original VM crash happened, so it wasn't that much of a deal to rebuild it.
I would like to see some form of safe-mode boot for Pharo, so that just the kernel would be loaded. ST images are all about state, and when production servers go down, it would be nice to be able to start them up, and rewind the app. For normal apps this is not an issue, but when forking processes for socket IO or a FFI call, it is possible to bring it down (or in my case where I think my error handling code caused an error) , and moving in a backup image is not always enough.
I would like to be able to rebuild the kernel at startup. Now I should work on it but I got new responsibilities and they take my time. Stef
I would like to get involved in such a project, if there was interest for it.
On Fri, Sep 9, 2011 at 18:41, Sean P. DeNigris <sean@clipperadams.com> wrote:
John Toohey wrote:
So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up?
I don't know if it'd be worth it, but if you're talking about a lot of work lost, it sounds like you could build a debug VM and bypass the loading code from the debugger (like I just had to do).
Sean
-- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p3802970.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- ~JT
What we want is to be able to remotely access kernels and isolate them. But this quite difficult and a solution probably requires having extra bits. Stef On Sep 11, 2011, at 2:49 AM, Schwab,Wilhelm K wrote:
Stef,
It's lonely at the top :) Best wishes with your new opportunities.
As a linux user, one thing I cringe about is opening a second image and creating a COMPLETE mess of my image. The IDE really needs to detect the problem and refuse to open before badness happens. Otherwise, I make backups (not as often as I should) and good use of recovering lost changes.
As for the general problem of building images, I see it much as lack of tools. We need something (Migrate being my evolving solution) that looks at what is installed and can get it into the next image. Metacello is a welcome way to install complicated stuff from others, by *my* code is presumably always something that I want to save and load w/o hassles.
FWIW, I have a love-hate relationship with R, and that community is facing a similar problem, and their presumed solution appears to be something that will analyze and build. I realize R's language is awful (raises doubt), but the system as a whole is quite impressive (restores faith).
Bill
________________________________________ From: pharo-project-bounces@lists.gforge.inria.fr [pharo-project-bounces@lists.gforge.inria.fr] On Behalf Of Stéphane Ducasse [stephane.ducasse@inria.fr] Sent: Saturday, September 10, 2011 4:37 PM To: Pharo-project@lists.gforge.inria.fr Subject: Re: [Pharo-project] 1.3 OneCick with Cog VM
On Sep 10, 2011, at 9:00 PM, John Toohey wrote:
I saw the screencast where Mariano did something like that. I had just built the image, when the original VM crash happened, so it wasn't that much of a deal to rebuild it.
I would like to see some form of safe-mode boot for Pharo, so that just the kernel would be loaded. ST images are all about state, and when production servers go down, it would be nice to be able to start them up, and rewind the app. For normal apps this is not an issue, but when forking processes for socket IO or a FFI call, it is possible to bring it down (or in my case where I think my error handling code caused an error) , and moving in a backup image is not always enough.
I would like to be able to rebuild the kernel at startup. Now I should work on it but I got new responsibilities and they take my time.
Stef
I would like to get involved in such a project, if there was interest for it.
On Fri, Sep 9, 2011 at 18:41, Sean P. DeNigris <sean@clipperadams.com> wrote:
John Toohey wrote:
So do I have to rebuild a new image from scratch now? Is there any command line switch that I can use to by pass the loading of my app on start up?
I don't know if it'd be worth it, but if you're talking about a lot of work lost, it sounds like you could build a debug VM and bypass the loading code from the debugger (like I just had to do).
Sean
-- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p3802970.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
-- ~JT
John Toohey wrote
I would like to see some form of safe-mode boot for Pharo
I opened an issue http://code.google.com/p/pharo/issues/detail?id=5166 -- View this message in context: http://forum.world.st/1-3-OneCick-with-Cog-VM-tp3798884p4283612.html Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
participants (6)
-
Igor Stasenko -
John Toohey -
Marcus Denker -
Schwab,Wilhelm K -
Sean P. DeNigris -
Stéphane Ducasse