[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