MagmaInvalidOid situation

Hernán Morales Durand hernan.morales at gmail.com
Tue Jun 16 06:22:13 UTC 2009


Hi all,
  I'm looking for more information concerning this error. Maybe a
course of remedy? (I've not tried to isolate yet in the hope of a
better understanding of the problem).
Context: I did this process over two MagmaCollection's before
succesfully. The process re-index an entire MagmaCollection, using a
temporary magma collection for that purpose. The error happened when
committing indexes to the new (temporary) magma collection. All the
process uses a MagmaSession locally connected.

The code looks like this:

| collection |

self session begin.
collection:=  self root at: self tempKey put: MagmaCollection new.
self  indexes do:[:each | collection addIndex: each ].
self session commit	

And the stack obtained with the trick of my previous e-mail:

16 June 2009 2:51:36 am

VM: Win32 - a SmalltalkImage
Image: Squeak3.9 [latest update: #7067]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir D:\OpusApp
Trusted Dir D:\OpusApp\compu
Untrusted Dir C:\Documents and Settings\compu\Mis documentos\My Squeak

MagmaSession>>signalExceptionLike:
	Receiver: a MagmaSession D:\OpusApp\Magma
	Arguments and temporary variables:
		anException: 	MagmaInvalidOid: 1623575456 is not a valid oid.
		signalableError: 	MagmaInvalidOid: 1623575456 is not a valid oid.
	Receiver's instance variables:
		id: 	an UUID('2caca4db-5f85-a546-a057-f7978a775e9c')
		user: 	a MagmaUser
	id = Opus
		serializer: 	a MaObjectSerializer
		transaction: 	a MaTransaction
		readStrategy: 	a MaReadStrategy
		definition: 	a MagmaRepositoryDefinition
		preferences: 	a MagmaPreferences
		anchor: 	nil
		transactionLevel: 	1
		strongReferences: 	an OrderedCollection()
		cache: 	a Dictionary()
		guard: 	a Mutex
		statistics: 	a MagmaSessionStatistics
		primaryLink: 	a MaLocalServerLink
		secondaryLink: 	a MaLocalServerLink
		allowFailover: 	true
		oidCount: 	12879073
		lastClean: 	26265480
		requiredProgress: 	0

[] in MagmaSession>>submit:to: {[aMagmaRepositoryRequest
requiresConnection   ifTrue: [self ensureConnected]...]}
	Arguments and temporary variables:
		aMagmaRepositoryRequest: 	a MaReadRequest
		aMaServerLink: 	a MaLocalServerLink
		didTry: 	false
		link: 	a MaLocalServerLink
		result: 	MagmaInvalidOid: 1623575456 is not a valid oid.
		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:


--- The full stack ---
MagmaSession>>signalExceptionLike:
[] in MagmaSession>>submit:to: {[aMagmaRepositoryRequest
requiresConnection   ifTrue: [self ensureConnected]...]}
[] in BlockContext>>maOn:do:on:do: {[self value]}
BlockContext>>on:do:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[] in BlockContext>>maOn:do:on:do: {[[self value]   on: exc1   do: block1]}
BlockContext>>on:do:
BlockContext>>maOn:do:on:do:
[] in MagmaSession>>submit:to: {[didTry := false.  link :=
aMaServerLink.  [aMagmaRepositoryRequest requires...]}
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
[] in MagmaSession>>submit:to: {[aMagmaRepositoryRequest waitCursor
showWhile: [didTry := false.    link :...]}
Mutex>>critical:
MagmaSession>>submit:to:
[] in MagmaSession>>secondarySubmit: {[self submit:
aMagmaRepositoryRequest to: secondaryLink]}
[] in BlockContext>>maOn:do:on:do: {[self value]}
BlockContext>>on:do:
[] in BlockContext>>maOn:do:on:do: {[[self value]   on: exc1   do: block1]}
BlockContext>>on:do:
BlockContext>>maOn:do:on:do:
MagmaSession>>secondarySubmit:
MagmaSession>>read:
[] in MagmaSession>>realObjectFor: {[result := self read: oid.  self
statistics clientSideProxyMaterializationTi...]}
Mutex>>critical:
MagmaSession>>realObjectFor:
MagmaMutatingProxy>>mutant
MagmaMutatingProxy(MaMutatingProxy)>>mutateAndSend:
[] in MagmaMutatingProxy(MaMutatingProxy)>>doesNotUnderstand: #select:
{[self maIsMutatingProxy   ifTrue: [self mutateAndSend: aMessage]
ifFalse: ...]}
BlockContext>>on:do:
MagmaMutatingProxy(MaMutatingProxy)>>doesNotUnderstand: #select:
RecordEventManager>>recordEventsOfKind:
SerialManifestation>>issnInternationalRecord
SerialManifestation>>issnInternationalRecordDateString
MaSearchStringIndex(MagmaCollectionIndex)>>indexObjectFor:
MaSearchStringIndex>>canIndex:
MaSearchStringIndex(MagmaCollectionIndex)>>validateCanIndex:
MaSearchStringIndex(MagmaCollectionIndex)>>indexHashesFor:
[] in MagmaCollection>>buildIndexes:ignoring: {[:eachIndex | changes
add: oid   at: (eachIndex indexHashesFor: eachObject...]}
...etc...

Best regards

Hernan


More information about the Magma mailing list