[BUG]UndefinedObject(Object)>>doesNotUnderstand: #secondaryLocationsDo:

Chris Muller asqueaker at gmail.com
Thu Apr 9 14:52:58 UTC 2009


Hi again, for information about "restoreMode" please see the page
about the new HA feature under the heading "Restore Mode".

http://wiki.squeak.org/squeak/6101

I was only recommending you *have* a backup of the repository whenever
you are going to do a "data repair".  This one is pretty safe anyway,
but its just good practice.

You may do the commit on the original..

 - Chris

On Tue, Apr 7, 2009 at 2:50 PM, Hernán Morales Durand
<hernan.morales at gmail.com> wrote:
> Hi Chris, I think some additional configuration is missing. I did the
> backup this way:
>
> currentDir := MagmaLocalLocation path: 'C:\Squeak3.9\Magma'.
> backupDir := FileDirectory  on: 'C:\Squeak3.9\MagmaBackup'.
> rc := MagmaRepositoryController
>                open: currentDir.
> rc fullBackupTo: backupDir.
>
> and then ran your script but returned an exception:
>
> MagmaUserError: Transactions are prohibited because this repository is
> in restore mode.
>
> I'd like to test the latest magma improvements here. Any idea what's wrong?.
>
> Below is the log:
>
> MagmaSession>>signalExceptionLike:
>        Receiver: a MagmaSession C:\Squeak3.9\MagmaBackup
>        Arguments and temporary variables:
>                anException:    MagmaUserError: Transactions are prohibited because
> this repositor...etc...
>                signalableError:        MagmaUserError: Transactions are prohibited
> because this repos...etc...
>        Receiver's instance variables:
>                id:     an UUID('9d6356ac-a46a-f741-a1cb-bf964365633a')
>                user:   a MagmaUser
>        id = upgrader
>                serializer:     a MaObjectSerializer
>                transaction:    a MaTransaction
>                readStrategy:   nil
>                definition:     a MagmaRepositoryDefinition
>                preferences:    a MagmaPreferences
>                anchor:         nil
>                transactionLevel:       0
>                strongReferences:       an OrderedCollection()
>                cache:  a Dictionary()
>                guard:  a Mutex
>                statistics:     a MagmaSessionStatistics
>                primaryLink:    a MaLocalServerLink
>                secondaryLink:  a MaLocalServerLink
>                allowFailover:  true
>                oidCount:       0
>                lastClean:      5568302
>                requiredProgress:       0
>
> [] in MagmaSession>>submit:to: {[aMagmaRepositoryRequest
> requiresConnection   ifTrue: [self ensureConnected]...]}
>        Arguments and temporary variables:
>                aMagmaRepositoryRequest:        a MaTransactionRequest
>                aMaServerLink:  a MaLocalServerLink
>                didTry:         false
>                link:   a MaLocalServerLink
>                result:         MagmaUserError: Transactions are prohibited because this
> repository is ...etc...
>                err:    nil
>                node:   nil
>
> [] in BlockContext>>maOn:do:on:do: {[self value]}
>        Arguments and temporary variables:
>                exc1:   MagmaSessionLost
>                block1:         [] in MagmaSession>>submit:to: {[:err |  MagmaNotification
> signal: 'Mag...etc...
>                exc2:   NetworkError
>                block2:         [] in MagmaSession>>submit:to: {[:err |
> aMagmaRepositoryRequest isConn...etc...
>
> BlockContext>>on:do:
>        Receiver: [] in BlockContext>>maOn:do:on:do: {[self value]}
>        Arguments and temporary variables:
>                exception:      MagmaSessionLost
>                handlerAction:  [] in MagmaSession>>submit:to: {[:err |
> MagmaNotification signa...etc...
>                handlerActive:  true
>        Receiver's instance variables:
>                sender:         BlockContext>>on:do:
>                pc:     29
>                stackp:         0
>                nargs:  0
>                startpc:        27
>                home:   BlockContext>>maOn:do:on:do:
>
>
> 2009/4/6 Chris Muller <asqueaker at gmail.com>:
>> Hi Hernán, yes, this is a known problem.  I believe all that needs to
>> be done is commit a Node object to the RepositoryDefinition:
>>
>> session := MagmaSession openLocal: '/a/backup/of/your/repository'.
>> session connectAs: 'upgrader'.
>> session commit:
>>  [ session magmaId node: MagmaNode new ]
>> session disconnectAndClose
>>
>> And now you should be able to open a console on it..
>>
>>  - Chris
>>
>> On Mon, Apr 6, 2009 at 1:19 AM, Hernán Morales Durand
>> <hernan.morales at gmail.com> wrote:
>>> Hello, I'm updating to release 42 beta 3 but after trying to connect
>>> with this script I get a DNU.
>>>
>>> | path |
>>> path := String streamContents: [: s |
>>>                        s nextPutAll: FileDirectory default pathName;
>>>                          nextPutAll: FileDirectory slash;
>>>                          nextPutAll: 'Magma' ].
>>> MagmaServerConsole new
>>>        open: path;
>>>        processOn: 51969.
>>>
>>> It worked fine with a previous release. I don't know what is that
>>> pervious release number because I didn't found a way to get the
>>> release version from Magma, I suppose my previous release is r42b1 or
>>> r41b3....
>>>
>>> this is the bug report, any hint would be appreciated.
>>>
>>> 7 April 2009 3:09:56 am
>>> VM: Win32 - a SmalltalkImage
>>> Image: Squeak3.10.2 [latest update: #7179]
>>>
>>> SecurityManager state:
>>> Restricted: false
>>> FileAccess: true
>>> SocketAccess: true
>>>
>>> UndefinedObject(Object)>>doesNotUnderstand: #secondaryLocationsDo:
>>>        Receiver: nil
>>>        Arguments and temporary variables:
>>>                aMessage:       secondaryLocationsDo: [] in
>>> MagmaServerConsole>>checkIfAmPrimaryOvert...etc...
>>>        Receiver's instance variables:
>>> nil
>>>
>>> MagmaServerConsole>>checkIfAmPrimaryOvertaken:
>>>        Receiver: a MagmaServerConsole
>>>        Arguments and temporary variables:
>>>                portInteger:    51969
>>>                thisLocation:   52246990800e4fa:51969
>>>                each:   nil
>>>                sess:   nil
>>>                err:    nil
>>>        Receiver's instance variables:
>>>                statistics:     a MagmaServerStatistics
>>>                lastRequestStart:       nil
>>>                lastRequestFinish:      nil
>>>                server:         a MaNetworkRequestServer
>>>                controller:     a MagmaRepositoryController
>>>
>>> [] in MagmaServerConsole>>preIgnitionSequence: {[self
>>> checkIfAmPrimaryOvertaken: portInteger]}
>>>        Arguments and temporary variables:
>>>                portInteger:    51969
>>>                nodeUpdates:    an OrderedCollection()
>>>                update:         nil
>>>                each:   nil
>>>
>>> BlockContext>>on:do:
>>>        Receiver: [] in MagmaServerConsole>>preIgnitionSequence: {[self
>>> checkIfAmPrimaryOvertaken: portInteg...etc...
>>>        Arguments and temporary variables:
>>>                exception:      MagmaNodeUpdate
>>>                handlerAction:  [] in MagmaServerConsole>>preIgnitionSequence:
>>> {[:update |  node...etc...
>>>                handlerActive:  true
>>>        Receiver's instance variables:
>>>                sender:         BlockContext>>on:do:
>>>                pc:     80
>>>                stackp:         0
>>>                nargs:  0
>>>                startpc:        77
>>>                home:   MagmaServerConsole>>preIgnitionSequence:
>>>
>>>
>>> --- The full stack ---
>>> UndefinedObject(Object)>>doesNotUnderstand: #secondaryLocationsDo:
>>> MagmaServerConsole>>checkIfAmPrimaryOvertaken:
>>> [] in MagmaServerConsole>>preIgnitionSequence: {[self
>>> checkIfAmPrimaryOvertaken: portInteger]}
>>> BlockContext>>on:do:
>>>  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>> MagmaServerConsole>>preIgnitionSequence:
>>> MagmaServerConsole>>noteAboutToStart
>>> MaNetworkRequestServer(MaServer)>>noteAboutToStart
>>> MaServerSocket>>listen
>>> MaServerSocket>>processOn:
>>> MaNetworkRequestServer>>processOn:
>>> MaNetworkRequestServer>>processOn:using:
>>> MagmaServerConsole>>processOn:
>>> UndefinedObject>>DoIt
>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>> [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection {[rcvr class
>>> evaluatorClass new   evaluate: self selectionAsStream   in: ctxt...]}
>>> BlockContext>>on:do:
>>> TextMorphEditor(ParagraphEditor)>>evaluateSelection
>>> TextMorphEditor(ParagraphEditor)>>inspectIt
>>> TextMorphEditor>>inspectIt:
>>> TextMorphEditor(ParagraphEditor)>>dispatchOnCharacter:with:
>>> TextMorphEditor>>dispatchOnCharacter:with:
>>> TextMorphEditor(ParagraphEditor)>>readKeyboard
>>> TextMorphEditor>>readKeyboard
>>> [] in TextMorphForEditView(TextMorph)>>keyStroke: {[editor readKeyboard]}
>>> TextMorphForEditView(TextMorph)>>handleInteraction:fromEvent:
>>> TextMorphForEditView>>handleInteraction:fromEvent:
>>> TextMorphForEditView(TextMorph)>>keyStroke:
>>> TextMorphForEditView>>keyStroke:
>>> TextMorphForEditView(TextMorph)>>handleKeystroke:
>>> KeyboardEvent>>sentTo:
>>> TextMorphForEditView(Morph)>>handleEvent:
>>> TextMorphForEditView(Morph)>>handleFocusEvent:
>>> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
>>> ActiveEvent := anEvent.  result := focusHolder     han...]}
>>> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
>>> BlockContext>>on:do:
>>> PasteUpMorph>>becomeActiveDuring:
>>> HandMorph>>sendFocusEvent:to:clear:
>>> HandMorph>>sendEvent:focus:clear:
>>> HandMorph>>sendKeyboardEvent:
>>> HandMorph>>handleEvent:
>>> HandMorph>>processEvents
>>> [] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h
>>> processEvents.  capturingGesture := capturingGest...]}
>>> Array(SequenceableCollection)>>do:
>>> WorldState>>handsDo:
>>> WorldState>>doOneCycleNowFor:
>>> WorldState>>doOneCycleFor:
>>> PasteUpMorph>>doOneCycle
>>> [] in Project class>>spawnNewProcess {[[World doOneCycle.  Processor
>>> yield.  false] whileFalse.  nil]}
>>> [] in BlockContext>>newProcess {[self value.  Processor terminateActive]}
>>> _______________________________________________
>>> Magma mailing list
>>> Magma at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/mailman/listinfo/magma
>>>
>>
> _______________________________________________
> Magma mailing list
> Magma at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/magma
>


More information about the Magma mailing list