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