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

Hernán Morales Durand hernan.morales at gmail.com
Tue Apr 7 19:50:55 UTC 2009


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
>>
>


More information about the Magma mailing list