Hi all,
I'm deploying a small seaside application that uses magma to store objects. I did it in win2k.
When I try to create the repository I got an error because seasidehosting uses a modified version of the VM with some sort of issue in the SecurityPlugin that dont let me do that. (this part isn't related to Magma but I wrote it to put as in context )
So I tried to create the repository in my win2k and then upload it to the server.
When I startup the application I got an error (I included the stack trace at the end of the message and attached the blank repository I'm trying to use).
Does anybody knows what I'm doing wrong and why I couln'd use the repository created with win2k in linux?
Thanks! Pablo.-
I set WAMagmaConfiguration's Repository Location to '/service/edp/files/magma' (as seaside suggested). I'm using the Sq3.8f+seaside+magma image.
MaUserError: fileStream required
* MaUserError class(Exception class)>>signal:
self MaUserError temps signalerText 'fileStream required' inst vars superclass MaError methodDict a MethodDictionary(#isUserError->a CompiledMethod (196) ) format 140 instanceVariables nil organization ('as yet unclassified' isUserError) subclasses #(MaClientServerUserError MagmaUserError MaHashIndexUserError MaObjectSerializationUserError MauiUse...etc... name #MaUserError classPool nil sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MaTransactionalFileStream class>>fileStream:
self MaTransactionalFileStream temps aFileStream nil inst vars superclass MaObject methodDict a MethodDictionary(#bePhysical->a CompiledMethod (520) #binary->a CompiledMethod (680) #close->a Com...etc... format 142 instanceVariables #('filename' 'fileStream' 'guard' 'uncommittedSize' 'position' 'writers') organization ('accessing' bePhysical committedSize copyToDirectory: physicalStream writersDo:) ('filestream api' ...etc... subclasses nil name #MaTransactionalFileStream classPool nil sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MaObjectFiler>>openFile:
self a MaObjectFiler temps unqualifiedName 'objects' answer nil inst vars directory UnixFileDirectory on '/service/edp/files/magma' file nil preMadeObjectBuffer a MaObjectBuffer oid : **invalid** classId : **invalid** objectInstSize : **invalid** filePositionIndex nil usedByteArrays #(a ByteArray(0) a ByteArray(0 0) a ByteArray(0 0 0) a ByteArray(0 0 0 0) a ByteArray(0 0 0 0 0) a B...etc... primitiveAttributeAddressesMap a Dictionary('anchorOid'->43->64 'booleanFlags'->10->8 'classDefinitionsOid'->27->64 'definitionOid'...etc...
* MaObjectFiler>>openObjectsFile
self a MaObjectFiler temps inst vars directory UnixFileDirectory on '/service/edp/files/magma' file nil preMadeObjectBuffer a MaObjectBuffer oid : **invalid** classId : **invalid** objectInstSize : **invalid** filePositionIndex nil usedByteArrays #(a ByteArray(0) a ByteArray(0 0) a ByteArray(0 0 0) a ByteArray(0 0 0 0) a ByteArray(0 0 0 0 0) a B...etc... primitiveAttributeAddressesMap a Dictionary('anchorOid'->43->64 'booleanFlags'->10->8 'classDefinitionsOid'->27->64 'definitionOid'...etc...
* MaObjectFiler>>open
self a MaObjectFiler temps inst vars directory UnixFileDirectory on '/service/edp/files/magma' file nil preMadeObjectBuffer a MaObjectBuffer oid : **invalid** classId : **invalid** objectInstSize : **invalid** filePositionIndex nil usedByteArrays #(a ByteArray(0) a ByteArray(0 0) a ByteArray(0 0 0) a ByteArray(0 0 0 0) a ByteArray(0 0 0 0 0) a B...etc... primitiveAttributeAddressesMap a Dictionary('anchorOid'->43->64 'booleanFlags'->10->8 'classDefinitionsOid'->27->64 'definitionOid'...etc...
* MaObjectFiler class>>open:
self MaObjectFiler temps aFileDirectory UnixFileDirectory on '/service/edp/files/magma' inst vars superclass MaObject methodDict a MethodDictionary(#anchorOid->a CompiledMethod (795) #anchorOid:->a CompiledMethod (2841) #appendOb...etc... format 142 instanceVariables #('directory' 'file' 'preMadeObjectBuffer' 'filePositionIndex' 'usedByteArrays' 'primitiveAttributeA...etc... organization ('accessing' anchorOid classDefinitionsOid dataFileName definitionOid directory filePointerForOid: f...etc... subclasses nil name #MaObjectFiler classPool nil sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MaObjectRepository>>open:
self a MaObjectRepository temps aFileDirectory UnixFileDirectory on '/service/edp/files/magma' inst vars transactionLog a MaTransactionLog sessions a Dictionary() filer nil repositoryController a MagmaRepositoryController largeCollectionManagers a Dictionary() systemReadStrategy nil nextOid nil recoveryManager nil commitGuard a Semaphore() applyProcess nil
* MaObjectRepository class>>open:controller:
self MaObjectRepository temps aFileDirectory UnixFileDirectory on '/service/edp/files/magma' aMaRepositoryController a MagmaRepositoryController inst vars superclass MaObject methodDict a MethodDictionary(#abortTransactionFor:->a CompiledMethod (2026) #applyToCache:->a CompiledMethod (...etc... format 150 instanceVariables #('transactionLog' 'sessions' 'filer' 'repositoryController' 'largeCollectionManagers' 'systemReadSt...etc... organization ('client-requests' abortTransactionFor: numberOfEntriesFrom:to:inLargeCollection:on: readAnchorFor:u...etc... subclasses nil name #MaObjectRepository classPool a Dictionary(#RunningTestCases->false #SimulateOutage->false ) sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MagmaRepositoryController>>privateOpen:
self a MagmaRepositoryController temps aFileDirectory UnixFileDirectory on '/service/edp/files/magma' inst vars repository a MaObjectRepository session a MagmaSession serverSerializer a MaObjectSerializer requestInterruptGuard a Semaphore() directory UnixFileDirectory on '/service/edp/files/magma' preferences a MagmaServerPreferences
* [] in MagmaRepositoryController>>open {[self privateOpen: directory]}
self a MagmaRepositoryController temps didRetry false err nil inst vars repository a MaObjectRepository session a MagmaSession serverSerializer a MaObjectSerializer requestInterruptGuard a Semaphore() directory UnixFileDirectory on '/service/edp/files/magma' preferences a MagmaServerPreferences
* BlockContext>>on:do:
self [] in MagmaRepositoryController>>open {[self privateOpen: directory]} temps exception MagmaCorruptionError handlerAction [] in MagmaRepositoryController>>open {[:err | didRetry ifTrue: [self error: 'serious problem'] ...etc... handlerActive true inst vars sender BlockContext>>on:do: pc 63 stackp 0 nargs 0 startpc 60 home MagmaRepositoryController>>open
* MagmaRepositoryController>>open
self a MagmaRepositoryController temps didRetry false err nil inst vars repository a MaObjectRepository session a MagmaSession serverSerializer a MaObjectSerializer requestInterruptGuard a Semaphore() directory UnixFileDirectory on '/service/edp/files/magma' preferences a MagmaServerPreferences
* MagmaRepositoryController>>open:
self a MagmaRepositoryController temps aFileDirectory UnixFileDirectory on '/service/edp/files/magma' inst vars repository a MaObjectRepository session a MagmaSession serverSerializer a MaObjectSerializer requestInterruptGuard a Semaphore() directory UnixFileDirectory on '/service/edp/files/magma' preferences a MagmaServerPreferences
* MagmaRepositoryController class>>open:
self MagmaRepositoryController temps fullyQualifiedPathString '/service/edp/files/magma' inst vars superclass MaObject methodDict a MethodDictionary(#averageObjectSize->a CompiledMethod (263) #backupTo:->a CompiledMethod (2344) #b...etc... format 142 instanceVariables #('repository' 'session' 'serverSerializer' 'requestInterruptGuard' 'directory' 'preferences') organization ('statistics' averageObjectSize numberOfConnectedClients objectCount version) ('utilities' backupTo:...etc... subclasses nil name #MagmaRepositoryController classPool a Dictionary(#OpenControllers->a Set() ) sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MagmaRepositoryController class>>openedOn:
self MagmaRepositoryController temps fullyQualifiedPathString '/service/edp/files/magma' existingController nil inst vars superclass MaObject methodDict a MethodDictionary(#averageObjectSize->a CompiledMethod (263) #backupTo:->a CompiledMethod (2344) #b...etc... format 142 instanceVariables #('repository' 'session' 'serverSerializer' 'requestInterruptGuard' 'directory' 'preferences') organization ('statistics' averageObjectSize numberOfConnectedClients objectCount version) ('utilities' backupTo:...etc... subclasses nil name #MagmaRepositoryController classPool a Dictionary(#OpenControllers->a Set() ) sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MagmaSession class>>openLocal:
self MagmaSession temps pathString '/service/edp/files/magma' inst vars superclass MaObject methodDict a MethodDictionary(size 109) format 152 instanceVariables #('id' 'user' 'serializer' 'transaction' 'readStrategy' 'definition' 'preferences' 'anchor' 'transac...etc... organization ('transactions' abort begin commit commitAndBegin commitAndBegin: commit: didChange: inNestedTransac...etc... subclasses nil name #MagmaSession classPool a Dictionary(#ConnectedSessions->a Set(a MagmaSession a MagmaSession a MagmaSession a MagmaSessio...etc... sharedPools nil environment a SystemDictionary(lots of globals) category nil
* [] in MagmaLocalLocation>>newSession {[sessionClass openLocal: fullPath]}
self /service/edp/files/magma temps sessionClass MagmaSession fullPath '/service/edp/files/magma' each a MagmaSession foundSession nil inst vars name nil path '/service/edp/files/magma'
Hi Pablo, sorry for the delayed response.
From looking at the stack trace, it appears the problem is caused
either by locked files or bugs or inconsistencies in UnixFileDirectory. Let me explain.
In MaObjectFiler>>#open, Magma asks the UnixFileDirectory
directory exists and: [ directory fileExists: self class objectsFilename ]
and the system reported true for this, otherwise it would have stopped you right there with a MagmaEnvironmentError.
Under this assumption, Magma then proceeds to open the object file. FileDirectory>>#fileNamed: is used to create the FileStream which is required by Magma. Unfortunately if some problem occurs, FileDirectory>>#fileNamed: doesn't signal a meaningful error, it only answers nil. Since we just checked fileExists: its not because it doesn't exist so is it possible the files are "locked" by another process or something? Did they get closed after the upload?
Otherwise, there may be some bad inconsistency with UnixFileDirectory>>#fileExists: and UnixFileDirectory>>#fileNamed:.
I'm no Unix expert, anyone else have any ideas?
- Chris
--- Pablo Iaria iariap@gmail.com wrote:
Hi all,
I'm deploying a small seaside application that uses magma to store objects. I did it in win2k.
When I try to create the repository I got an error because seasidehosting uses a modified version of the VM with some sort of issue in the SecurityPlugin that dont let me do that. (this part isn't related to Magma but I wrote it to put as in context )
So I tried to create the repository in my win2k and then upload it to the server.
When I startup the application I got an error (I included the stack trace at the end of the message and attached the blank repository I'm trying to use).
Does anybody knows what I'm doing wrong and why I couln'd use the repository created with win2k in linux?
Thanks! Pablo.-
I set WAMagmaConfiguration's Repository Location to '/service/edp/files/magma' (as seaside suggested). I'm using the Sq3.8f+seaside+magma image.
MaUserError: fileStream required
* MaUserError class(Exception class)>>signal: self MaUserError temps signalerText 'fileStream required' inst vars superclass MaError methodDict a MethodDictionary(#isUserError->a
CompiledMethod (196) ) format 140 instanceVariables nil organization ('as yet unclassified' isUserError) subclasses #(MaClientServerUserError MagmaUserError MaHashIndexUserError MaObjectSerializationUserError MauiUse...etc... name #MaUserError classPool nil sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MaTransactionalFileStream class>>fileStream: self MaTransactionalFileStream temps aFileStream nil inst vars superclass MaObject methodDict a MethodDictionary(#bePhysical->a CompiledMethod
(520) #binary->a CompiledMethod (680) #close->a Com...etc... format 142 instanceVariables #('filename' 'fileStream' 'guard' 'uncommittedSize' 'position' 'writers') organization ('accessing' bePhysical committedSize copyToDirectory: physicalStream writersDo:) ('filestream api' ....etc... subclasses nil name #MaTransactionalFileStream classPool nil sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MaObjectFiler>>openFile: self a MaObjectFiler temps unqualifiedName 'objects' answer nil inst vars directory UnixFileDirectory on '/service/edp/files/magma' file nil preMadeObjectBuffer a MaObjectBuffer oid : **invalid**
classId : **invalid** objectInstSize : **invalid** filePositionIndex nil usedByteArrays #(a ByteArray(0) a ByteArray(0 0) a ByteArray(0 0 0) a ByteArray(0 0 0 0) a ByteArray(0 0 0 0 0) a B...etc... primitiveAttributeAddressesMap a Dictionary('anchorOid'->43->64 'booleanFlags'->10->8 'classDefinitionsOid'->27->64 'definitionOid'...etc...
* MaObjectFiler>>openObjectsFile self a MaObjectFiler temps inst vars directory UnixFileDirectory on '/service/edp/files/magma' file nil preMadeObjectBuffer a MaObjectBuffer oid : **invalid**
classId : **invalid** objectInstSize : **invalid** filePositionIndex nil usedByteArrays #(a ByteArray(0) a ByteArray(0 0) a ByteArray(0 0 0) a ByteArray(0 0 0 0) a ByteArray(0 0 0 0 0) a B...etc... primitiveAttributeAddressesMap a Dictionary('anchorOid'->43->64 'booleanFlags'->10->8 'classDefinitionsOid'->27->64 'definitionOid'...etc...
* MaObjectFiler>>open self a MaObjectFiler temps inst vars directory UnixFileDirectory on '/service/edp/files/magma' file nil preMadeObjectBuffer a MaObjectBuffer oid : **invalid**
classId : **invalid** objectInstSize : **invalid** filePositionIndex nil usedByteArrays #(a ByteArray(0) a ByteArray(0 0) a ByteArray(0 0 0) a ByteArray(0 0 0 0) a ByteArray(0 0 0 0 0) a B...etc... primitiveAttributeAddressesMap a Dictionary('anchorOid'->43->64 'booleanFlags'->10->8 'classDefinitionsOid'->27->64 'definitionOid'...etc...
* MaObjectFiler class>>open: self MaObjectFiler temps aFileDirectory UnixFileDirectory on
'/service/edp/files/magma' inst vars superclass MaObject methodDict a MethodDictionary(#anchorOid->a CompiledMethod (795) #anchorOid:->a CompiledMethod (2841) #appendOb...etc... format 142 instanceVariables #('directory' 'file' 'preMadeObjectBuffer' 'filePositionIndex' 'usedByteArrays' 'primitiveAttributeA...etc... organization ('accessing' anchorOid classDefinitionsOid dataFileName definitionOid directory filePointerForOid: f...etc... subclasses nil name #MaObjectFiler classPool nil sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MaObjectRepository>>open: self a MaObjectRepository temps aFileDirectory UnixFileDirectory on
'/service/edp/files/magma' inst vars transactionLog a MaTransactionLog sessions a Dictionary() filer nil repositoryController a MagmaRepositoryController largeCollectionManagers a Dictionary() systemReadStrategy nil nextOid nil recoveryManager nil commitGuard a Semaphore() applyProcess nil
* MaObjectRepository class>>open:controller: self MaObjectRepository temps aFileDirectory UnixFileDirectory on
'/service/edp/files/magma' aMaRepositoryController a MagmaRepositoryController inst vars superclass MaObject methodDict a MethodDictionary(#abortTransactionFor:->a CompiledMethod (2026) #applyToCache:->a CompiledMethod (...etc... format 150 instanceVariables #('transactionLog' 'sessions' 'filer' 'repositoryController' 'largeCollectionManagers' 'systemReadSt...etc... organization ('client-requests' abortTransactionFor: numberOfEntriesFrom:to:inLargeCollection:on: readAnchorFor:u...etc... subclasses nil name #MaObjectRepository classPool a Dictionary(#RunningTestCases->false #SimulateOutage->false ) sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MagmaRepositoryController>>privateOpen: self a MagmaRepositoryController temps aFileDirectory UnixFileDirectory on
'/service/edp/files/magma' inst vars repository a MaObjectRepository session a MagmaSession serverSerializer a MaObjectSerializer requestInterruptGuard a Semaphore() directory UnixFileDirectory on '/service/edp/files/magma' preferences a MagmaServerPreferences
* [] in MagmaRepositoryController>>open {[self privateOpen:
directory]}
self a MagmaRepositoryController temps didRetry false err nil inst vars repository a MaObjectRepository session a MagmaSession serverSerializer a MaObjectSerializer requestInterruptGuard a Semaphore() directory UnixFileDirectory on '/service/edp/files/magma' preferences a MagmaServerPreferences * BlockContext>>on:do: self [] in MagmaRepositoryController>>open {[self
privateOpen: directory]} temps exception MagmaCorruptionError handlerAction [] in MagmaRepositoryController>>open {[:err | didRetry ifTrue: [self error: 'serious problem'] ...etc... handlerActive true inst vars sender BlockContext>>on:do: pc 63 stackp 0 nargs 0 startpc 60 home MagmaRepositoryController>>open
* MagmaRepositoryController>>open self a MagmaRepositoryController temps didRetry false err nil inst vars repository a MaObjectRepository session a MagmaSession serverSerializer a MaObjectSerializer requestInterruptGuard a Semaphore() directory UnixFileDirectory on '/service/edp/files/magma' preferences a MagmaServerPreferences * MagmaRepositoryController>>open: self a MagmaRepositoryController temps aFileDirectory UnixFileDirectory on
'/service/edp/files/magma' inst vars repository a MaObjectRepository session a MagmaSession serverSerializer a MaObjectSerializer requestInterruptGuard a Semaphore() directory UnixFileDirectory on '/service/edp/files/magma' preferences a MagmaServerPreferences
* MagmaRepositoryController class>>open: self MagmaRepositoryController temps fullyQualifiedPathString '/service/edp/files/magma' inst vars superclass MaObject methodDict a MethodDictionary(#averageObjectSize->a
CompiledMethod (263) #backupTo:->a CompiledMethod (2344) #b...etc... format 142 instanceVariables #('repository' 'session' 'serverSerializer' 'requestInterruptGuard' 'directory' 'preferences') organization ('statistics' averageObjectSize numberOfConnectedClients objectCount version) ('utilities' backupTo:...etc... subclasses nil name #MagmaRepositoryController classPool a Dictionary(#OpenControllers->a Set() ) sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MagmaRepositoryController class>>openedOn: self MagmaRepositoryController temps fullyQualifiedPathString '/service/edp/files/magma' existingController nil inst vars superclass MaObject methodDict a MethodDictionary(#averageObjectSize->a
CompiledMethod (263) #backupTo:->a CompiledMethod (2344) #b...etc... format 142 instanceVariables #('repository' 'session' 'serverSerializer' 'requestInterruptGuard' 'directory' 'preferences') organization ('statistics' averageObjectSize numberOfConnectedClients objectCount version) ('utilities' backupTo:...etc... subclasses nil name #MagmaRepositoryController classPool a Dictionary(#OpenControllers->a Set() ) sharedPools nil environment a SystemDictionary(lots of globals) category nil
* MagmaSession class>>openLocal: self MagmaSession temps pathString '/service/edp/files/magma' inst vars superclass MaObject methodDict a MethodDictionary(size 109) format 152 instanceVariables #('id' 'user' 'serializer' 'transaction'
'readStrategy' 'definition' 'preferences' 'anchor' 'transac...etc... organization ('transactions' abort begin commit commitAndBegin commitAndBegin: commit: didChange: inNestedTransac...etc... subclasses nil name #MagmaSession classPool a Dictionary(#ConnectedSessions->a Set(a MagmaSession a MagmaSession a MagmaSession a MagmaSessio...etc... sharedPools nil environment a SystemDictionary(lots of globals) category nil
* [] in MagmaLocalLocation>>newSession {[sessionClass openLocal:
fullPath]}
self /service/edp/files/magma temps sessionClass MagmaSession fullPath '/service/edp/files/magma' each a MagmaSession foundSession nil inst vars name nil path '/service/edp/files/magma'
Magma mailing list Magma@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/magma
magma@lists.squeakfoundation.org