Primitive has failed - Linux

Chris Muller chris at funkyobjects.org
Sat Oct 22 21:38:42 UTC 2005


Hi Ramiro, it looks like an invalid keySize for the MagmaCollection was
specified, but if so then Magma should have caught it by validation..

It would be very easy to debug if you can please tell me what script I can use
to reproduce the issue.

Also, please try it on 3.8.  I haven't tried Magma on 3.9 yet, so it is not
supported (yet).

MagmaCollections definitely work, I'm sure we can figure out what happened and
how to fix..

Thanks,
  Chris



--- Ramiro Diaz Trepat <ramirodt at gmail.com> wrote:

> Hello,
>    I am trying to use Magma for a little projecto of mine.  I have apparently
> managed to create and store a few objects.  But when I close the database and
> open it again I get the Primitive has failed exception with the details I am
> attaching.
>    I am running on a 3.9 image under linux with the following VM version:
> 
> ramiro at alcmena:~$ squeak -version
> 3.8a-1 #1 Tue Mar 22 14:03:58 PST 2005 ccache
> Squeak3.8gamma of '24 November 2004' [latest update: #6548]
> 
>    Has anyone come across this issue?
>    Should I be using a different VM or Image?
> 
> 
> --
> http://neosmt.com
> > Error: a primitive has failed
22 October 2005 1:53:47 am

VM: unix - a
> SmalltalkImage
Image: Squeak3.9alpha [latest update: #6693]

SecurityManager
> state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir
> /media/work/Squeak/3.9
Trusted Dir /media/work/Squeak/3.9/secure
Untrusted
> Dir /media/work/Squeak/3.9/My Squeak

ByteArray class(Object)>>error:
> Receiver: ByteArray
	Arguments and temporary variables: 
		aString: 	'a
> primitive has failed'
	Receiver's instance variables: 
		superclass: 
> ArrayedCollection
		methodDict: 	a MethodDictionary(#asByteArray->a
> CompiledMethod (480) #asByteArra...etc...
		format: 	1026
	
> instanceVariables: 	nil
		organization: 	('accessing' asWideString atAllPut:
> byteAt: byteAt:put: byteSize ...etc...
		subclasses: 	{CompiledMethod .
> ExternalAddress . UUID}
		name: 	#ByteArray
		classPool: 	a Dictionary()
	
> sharedPools: 	nil
		environment: 	nil
		category: 	nil

ByteArray
> class(Object)>>primitiveFailed
	Receiver: ByteArray
	Arguments and temporary
> variables: 

	Receiver's instance variables: 
		superclass: 
> ArrayedCollection
		methodDict: 	a MethodDictionary(#asByteArray->a
> CompiledMethod (480) #asByteArra...etc...
		format: 	1026
	
> instanceVariables: 	nil
		organization: 	('accessing' asWideString atAllPut:
> byteAt: byteAt:put: byteSize ...etc...
		subclasses: 	{CompiledMethod .
> ExternalAddress . UUID}
		name: 	#ByteArray
		classPool: 	a Dictionary()
	
> sharedPools: 	nil
		environment: 	nil
		category: 	nil

ByteArray
> class(Behavior)>>basicNew:
	Receiver: ByteArray
	Arguments and temporary
> variables: 
		sizeRequested: 	(1/4)
	Receiver's instance variables: 
	
> superclass: 	ArrayedCollection
		methodDict: 	a
> MethodDictionary(#asByteArray->a CompiledMethod (480) #asByteArra...etc...
	
> format: 	1026
		instanceVariables: 	nil
		organization: 	('accessing'
> asWideString atAllPut: byteAt: byteAt:put: byteSize ...etc...
		subclasses: 
> {CompiledMethod . ExternalAddress . UUID}
		name: 	#ByteArray
		classPool: 	a
> Dictionary()
		sharedPools: 	nil
		environment: 	nil
		category: 
> nil

ByteArray class(Behavior)>>new:
	Receiver: ByteArray
	Arguments and
> temporary variables: 
		sizeRequested: 	(1/4)
	Receiver's instance variables:
> 		superclass: 	ArrayedCollection
		methodDict: 	a
> MethodDictionary(#asByteArray->a CompiledMethod (480) #asByteArra...etc...
	
> format: 	1026
		instanceVariables: 	nil
		organization: 	('accessing'
> asWideString atAllPut: byteAt: byteAt:put: byteSize ...etc...
		subclasses: 
> {CompiledMethod . ExternalAddress . UUID}
		name: 	#ByteArray
		classPool: 	a
> Dictionary()
		sharedPools: 	nil
		environment: 	nil
		category: 	nil


---
> The full stack ---
ByteArray class(Object)>>error:
ByteArray
> class(Object)>>primitiveFailed
ByteArray class(Behavior)>>basicNew:
ByteArray
> class(Behavior)>>new:
 - - - - - - - - - - - - - - - - - - - - - - - - - - -
> - - - - -
> -
MaHashIndexRecord>>keySize:valueSize:numberOfSlots:
MaHashIndexRecord
> class>>keySize:valueSize:numberOfSlots:
MaHashIndex>>createRecord
MaHashIndex>>initializeRecords
MaHashIndex>>keySize:valueSize:hashRecordSize:
MaHashIndex>>initializeFromHeader:
MaHashIndex(MaLargeArrayOfRecords)>>readHeader
MaHashIndex(MaLargeArrayOfRecords)>>open:
MaHashIndex(MaMagnitudeIndex)>>open:
MaHashIndex
> class(MaLargeArrayOfRecords
> class)>>open:
MagmaCollectionManager>>openIndex:
MagmaCollectionManager(MaLargeCollectionManager)>>ensureMemberIndexOpen
MagmaCollectionManager(MaLargeCollectionManager)>>ensureOpen
MagmaCollectionManager>>ensureOpen
MaObjectRepository>>openLargeCollectionIfNecessary:
MagmaRepositoryController>>openLargeCollection:
[]
> in MagmaRepositoryController>>openLargeCollections {[:each | self
> openLargeCollection:
> each]}
Set>>do:
MagmaRepositoryController>>openLargeCollections
MagmaRepositoryController>>open
MagmaRepositoryController>>open:
MagmaRepositoryController
> class>>open:
MagmaRepositoryController class>>openedOn:
MagmaSession
> class>>openLocal:
FinanceDB
> class>>session
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)>>doIt
[]
> in TextMorphEditor(ParagraphEditor)>>doIt: {[self doIt]}
TextMorphEditor(Controller)>>terminateAndInitializeAround:
...etc...> 'From Squeak3.9alpha of 4 July 2005 [latest update: #6693] on 22
October 2005
> at 1:54:53 am'!

!Behavior methodsFor: 'instance creation' stamp: 'sd
> 3/28/2003 15:06'!
basicNew: sizeRequested 
	"Primitive. Answer an instance of
> this class with the number
	of indexable variables specified by the argument,
> sizeRequested.
	Fail if this class is not indexable or if the argument is not
> a
	positive Integer, or if there is not enough memory available. 
	Essential.
> See Object documentation whatIsAPrimitive."

	<primitive: 71>
	self
> isVariable ifFalse:
		[self error: self printString, ' cannot have variable
> sized instances'].
	(sizeRequested isInteger and: [sizeRequested >= 0])
> ifTrue:
		["arg okay; space must be low."
		self environment signalLowSpace.
> 	^ self basicNew: sizeRequested  "retry if user proceeds"].
	self
> primitiveFailed! !




More information about the Magma mailing list