Magma....

Ramiro Diaz Trepat ramiro at novamens.com
Sat Jul 3 04:55:57 UTC 2004


Please guys, this must have happened to someone using Magma.
I am using the 3.7 image and the latest available Magma.
The simplest lines, like the one below:

session commit: [ session root at: 'address' put: address ].

(where Address is a silly class containing only a couple of attributes 
(street and number) ment only for testing)
Give me the "primitive has failed" (and the log I am attaching)

But *trivial* lines like this one:

session commit: [ session root at: 'song' put: 'lalala' ].

work perfectly.
-------------- next part --------------
Error: a primitive has failed
3 July 2004 1:50:41 am

VM: Win32 - a SmalltalkImage
Image: Squeak3.7beta [latest update: #5967]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir D:\Squeak\3.6
Trusted Dir D:\Squeak\3.6\Ramiro Diaz Trepat
Untrusted Dir C:\My Squeak\Ramiro Diaz Trepat

Array(Object)>>error:
	Receiver: <<error during printing>>
	Arguments and temporary variables: 
		aString: 	'a primitive has failed'
	Receiver's instance variables: 
<<error during printing>>
Array(Object)>>primitiveFailed
	Receiver: <<error during printing>>
	Arguments and temporary variables: 

	Receiver's instance variables: 
<<error during printing>>
Array>>elementsForwardIdentityTo:copyHash:
	Receiver: <<error during printing>>
	Arguments and temporary variables: 
		otherArray: 	#(an OrderedCollection(2066653))
		copyHash: 	false
	Receiver's instance variables: 
<<error during printing>>
MaOdbmsProxy(MaMutatingProxy)>>becomeForward:copyHash:
	Receiver: <<error during printing>>
	Arguments and temporary variables: 
		otherObject: 	an OrderedCollection(2066653)
		copyHash: 	false
	Receiver's instance variables: 
<<error during printing>>

--- The full stack ---
Array(Object)>>error:
Array(Object)>>primitiveFailed
Array>>elementsForwardIdentityTo:copyHash:
MaOdbmsProxy(MaMutatingProxy)>>becomeForward:copyHash:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MaObjectSerializer>>newSkeletonFor:fromProxy:
[] in MaObjectSerializer>>materializeGraphDo: {[:foundObj |  foundObj maIsBufferedObjectProxy   ifTrue: [skeletons     add:...]}
[] in MagmaOidManager>>objectWithOid:ifFound:ifAbsent: {[:obj | obj   ifNil: [aBlock value]   ifNotNil: [oneArgBlock value: obj]]}
MaWeakValueDictionary(MaDictionary)>>maAt:ifPresent:ifAbsent:
[] in MagmaOidManager>>objectWithOid:ifFound:ifAbsent: {[(MaOidCalculator isOidForNewObject: anInteger)   ifTrue: [newObjects     ma...]}
MaOidCalculator class>>objectWithOid:ifNone:
MagmaOidManager>>objectWithOid:ifFound:ifAbsent:
MaObjectSerializer>>objectWithOid:ifFound:ifAbsent:
[] in MaObjectSerializer>>materializeGraphDo: {[:each |  object := self     objectWithOid: each oid     ifFound: [:foundObj...]}
[] in MaSerializedGraphBuffer>>buffersDo: {[:eachPosition |  buffer := preMadeBuffers     at: (self bufferTypeAt: eachP...]}
MaSerializedGraphBuffer>>bufferPositionsDo:
MaSerializedGraphBuffer>>buffersDo:
MaObjectSerializer>>materializeGraphDo:
MaObjectSerializer>>materializeGraph:do:
MagmaSession>>materializeObject:
MagmaSession>>realObjectFor:
MaOdbmsProxy>>mutant
MaOdbmsProxy(MaMutatingProxy)>>mutateAndSend:
MaOdbmsProxy(MaMutatingProxy)>>doesNotUnderstand: #size
[] in MagmaClassIdManager>>materializeAllClassDefinitions {[:each | each size]}
[] in Dictionary>>do: {[:assoc | aBlock value: assoc value]}
Dictionary(Set)>>do:
Dictionary>>do:
MagmaClassIdManager>>materializeAllClassDefinitions
MaObjectSerializer>>materializeAllClassDefinitions
MagmaSession>>refreshViewUsing:
MagmaSession>>refresh
MagmaSession>>abort
MagmaRepositoryController>>refreshView
MaObjectRepository>>submitAll:for:beginAnother:
MagmaRepositoryController>>submitAll:for:beginAnother:
MaWriteRequest>>process
[] in MagmaRepositoryController>>processRequest: {[aMaRepositoryRequest process]}
[] in Semaphore>>critical: {[blockValue := mutuallyExcludedBlock value]}
BlockContext>>ensure:
Semaphore>>critical:
MagmaRepositoryController>>requestCritical:
[] in MagmaRepositoryController>>processRequest: {[aMaRepositoryRequest sessionId = self sessionId   ifTrue: [aMaRepositoryReq...]}
BlockContext>>on:do:
MagmaRepositoryController>>processRequest:
[] in MagmaSession class>>repositoryController: {[:eachRequest | aMaRepositoryController processRequest: eachRequest]}
[] in MaLocalRequestServer(MaRequestServer)>>processRequest: {[processBlock value: aMaServerRequest]}
BlockContext>>on:do:
MaLocalRequestServer(MaRequestServer)>>processRequest:
MaLocalServerLink>>submit:
MaRepositoryControllerFacade>>submit:
MaRepositoryControllerFacade>>submitAll:andBegin:
[] in MagmaSession>>commitAndBegin: {[anchor := nil.  facade submitAll: commitPackage andBegin: aBoolean]}
BlockContext>>on:do:
MagmaSession>>commitAndBegin:
MagmaSession>>commit
[] in MagmaSession>>commit: {[result := aBlock value.  self commit]}
BlockContext>>ensure:
MagmaSession>>commit:
...etc...


More information about the Squeak-dev mailing list