On 9 September 2011 20:43, John Toohey <[email protected]> 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 <[email protected]> wrote: >> On 9 September 2011 20:31, John Toohey <[email protected]> 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 <[email protected]> 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.
