Magma on seasidehosting

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

Magma on seasidehosting

Pablo Iaria
Hi all,

I'm trying to deploy a small seaside+magma application on seasidehosting.st.

First I made a small application to create the repository, then I
added a WAMagmaConfiguration and set up the repository absolute path
suggested to /service/edp/files/edp_messages and I got the following
stacktrace.
Does any body knows what did I do wrong?

Thanks!
Pablo.-


Error: a primitive has failed

    * UnixFileDirectory(Object)>>error:

          self UnixFileDirectory on '/'
          temps
          aString 'a primitive has failed'
          inst vars
          pathName FilePath('/')

    * UnixFileDirectory(Object)>>primitiveFailed

          self UnixFileDirectory on '/'
          temps
          inst vars
          pathName FilePath('/')

    * UnixFileDirectory(FileDirectory)>>primCreateDirectory:

          self UnixFileDirectory on '/'
          temps
          fullPath '/service'
          inst vars
          pathName FilePath('/')

    * UnixFileDirectory(FileDirectory)>>createDirectory:

          self UnixFileDirectory on '/'
          temps
          localFileName 'service'
          inst vars
          pathName FilePath('/')

    * UnixFileDirectory(FileDirectory)>>assureExistenceOfPath:

          self UnixFileDirectory on '/'
          temps
          lPath 'service'
          localPath 'service'
          inst vars
          pathName FilePath('/')

    * UnixFileDirectory(FileDirectory)>>assureExistenceOfPath:

          self UnixFileDirectory on '/service'
          temps
          lPath 'edp'
          localPath 'edp'
          inst vars
          pathName FilePath('/service')

    * UnixFileDirectory(FileDirectory)>>assureExistenceOfPath:

          self UnixFileDirectory on '/service/edp'
          temps
          lPath 'files'
          localPath 'files'
          inst vars
          pathName FilePath('/service/edp')

    * UnixFileDirectory(FileDirectory)>>assureExistenceOfPath:

          self UnixFileDirectory on '/service/edp/files'
          temps
          lPath 'edp_messages'
          localPath 'edp_messages'
          inst vars
          pathName FilePath('/service/edp/files')

    * UnixFileDirectory(FileDirectory)>>assureExistence

          self UnixFileDirectory on '/service/edp/files/edp_messages'
          temps
          inst vars
          pathName FilePath('/service/edp/files/edp_messages')

    * MaObjectFiler>>create:

          self a MaObjectFiler
          temps
          aFileDirectory UnixFileDirectory on '/service/edp/files/edp_messages'
          inst vars
          directory nil
          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>>create:

          self MaObjectFiler
          temps
          aFileDirectory UnixFileDirectory on '/service/edp/files/edp_messages'
          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>>create:

          self a MaObjectRepository
          temps
          aFileDirectory UnixFileDirectory on '/service/edp/files/edp_messages'
          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
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Magma on seasidehosting

Lukas Renggli
> First I made a small application to create the repository, then I
> added a WAMagmaConfiguration and set up the repository absolute path
> suggested to /service/edp/files/edp_messages and I got the following
> stacktrace.
> Does any body knows what did I do wrong?

You are not doing anything wrong, it is just that the implementation
of #assureExistence does not properly work together with our VM.

To avoid that people touch critical parts of the system or file of
other hosted applications we hide them from the file-system using the
vm, though there seems to be a problem with the implementation of this
particular method now. I will see what I can do: it will require that
I invest more time into that part of the VM and that I update some
tests. Don't expect a solution to this problem within the next few
days. I will try my best to find a good solution for you and the
hosting server.

Thanks for the detailled report.

Cheers,
Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Magma on seasidehosting

Lukas Renggli
> To avoid that people touch critical parts of the system or file of
> other hosted applications we hide them from the file-system using the
> vm, though there seems to be a problem with the implementation of this
> particular method now. I will see what I can do: it will require that
> I invest more time into that part of the VM and that I update some
> tests. Don't expect a solution to this problem within the next few
> days. I will try my best to find a good solution for you and the
> hosting server.

This is very difficult to fix in the VM. Obviously this is a bug in
the interaction of the SecurityPlugin and the way FilePlugin handles
file-enumerating. As a quick fix I suggest that you patch the
following method in your image:

UnixFileDirectory>>directoryExists: filenameOrPath
        "Handles the special case of testing for the root dir: there isn't a
        possibility to express the root dir as full pathname like '/foo'."

        ^ filenameOrPath = '/'
                or: [ filenameOrPath = self class default
                or: [ super directoryExists: filenameOrPath ] ]

Hope this helps,
Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Magma on seasidehosting

Lukas Renggli
> UnixFileDirectory>>directoryExists: filenameOrPath
>         "Handles the special case of testing for the root dir: there isn't a
>         possibility to express the root dir as full pathname like '/foo'."
>
>         ^ filenameOrPath = '/'
>                 or: [ filenameOrPath = self class default
>                 or: [ super directoryExists: filenameOrPath ] ]

Ouch, I forgot a #pathName, try this instead:

UnixFileDirectory >>directoryExists: filenameOrPath
        "Handles the special case of testing for the root dir: there isn't a
        possibility to express the root dir as full pathname like '/foo'."

        ^ filenameOrPath = '/'
                or: [ filenameOrPath = self class default pathName
                or: [ super directoryExists: filenameOrPath ] ]

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Magma on seasidehosting

Pablo Iaria
Lucas, thank you for the quick response!
I tried the code you sent me, but it didn't work.

In the mean time I created a repository in my local machine (with
win2k), compressed it and uploaded to my root directory ("root
directory"/magma). Now I got another error (I put the stack trace at
the end of the message).

So I'll better wait until the problems with VM be fixed.

Thanks!
Pablo.-


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



On 8/23/06, Lukas Renggli <[hidden email]> wrote:

> > UnixFileDirectory>>directoryExists: filenameOrPath
> >         "Handles the special case of testing for the root dir: there isn't a
> >         possibility to express the root dir as full pathname like '/foo'."
> >
> >         ^ filenameOrPath = '/'
> >                 or: [ filenameOrPath = self class default
> >                 or: [ super directoryExists: filenameOrPath ] ]
>
> Ouch, I forgot a #pathName, try this instead:
>
> UnixFileDirectory >>directoryExists: filenameOrPath
>         "Handles the special case of testing for the root dir: there isn't a
>         possibility to express the root dir as full pathname like '/foo'."
>
>         ^ filenameOrPath = '/'
>                 or: [ filenameOrPath = self class default pathName
>                 or: [ super directoryExists: filenameOrPath ] ]
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Magma on seasidehosting

Lukas Renggli
> Lucas, thank you for the quick response!
> I tried the code you sent me, but it didn't work.

Your directory on seasidehosting.st looks odd, there are several
database. It seems to be able to create the files now.

.:
insgesamt 49392
-rw-r--r--  1 nobody   nogroup      3767 2006-08-23 14:29
C:\personal\soft\edp\package-cache\EDP-PI.8.mcz
-rw-r--r--  1 nobody   nogroup      3850 2006-08-23 14:52
C:\personal\soft\edp\package-cache\EDP-PI.9.mcz
drwxr-xr-x  3 webadmin webadmin     4096 2006-08-23 16:17 files
drwxr-xr-x  2 webadmin webadmin     4096 2006-08-23 15:40 magma
drwxrwxrwx  2 webadmin webadmin     4096 2006-08-17 15:08 resources
-rw-rw-rw-  1 webadmin webadmin 17192133 2006-08-23 09:08
Sq3.8f+seaside+magma.changes
-rw-rw-rw-  1 webadmin webadmin 33290892 2006-08-23 09:08
Sq3.8f+seaside+magma.image
-rw-r--r--  1 nobody   nogroup      4378 2006-08-23 14:24 SqueakDebug.log
lrwxrwxrwx  1 root     root           45 2006-08-23 14:24
SqueakV3.sources -> /usr/local/lib/squeak/3.7-7s/SqueakV3.sources

./files:
insgesamt 4
drwxr-xr-x  2 webadmin webadmin 4096 2006-08-23 15:44 magma

./files/magma:
insgesamt 44
-rw-r--r--  1 webadmin webadmin   208 2006-08-23 15:44 applied.images
-rw-r--r--  1 webadmin webadmin  1352 2006-08-23 15:44 commitPackages
-rw-r--r--  1 webadmin webadmin 30653 2006-08-23 15:44 objects
-rw-r--r--  1 webadmin webadmin  3181 2006-08-23 15:44 objects.idx

./magma:
insgesamt 44
-rw-r--r--  1 webadmin webadmin   208 2006-08-23 15:40 applied.images
-rw-r--r--  1 webadmin webadmin  1352 2006-08-23 15:40 commitPackages
-rw-r--r--  1 webadmin webadmin 30653 2006-08-23 15:40 objects
-rw-r--r--  1 webadmin webadmin  3181 2006-08-23 15:40 objects.idx

./resources:
insgesamt 0

> In the mean time I created a repository in my local machine (with
> win2k), compressed it and uploaded to my root directory ("root
> directory"/magma). Now I got another error (I put the stack trace at
> the end of the message).

The error looks like to be deep inside Magma, so I can't understand
what it means and what it tries to do. From the file-listing it looks
like Magma created some files, I don't know if these files represent a
complete database. Maybe you should ask Chris Muller in the Magma list
what this error means and I could then further investigate if this is
a problem with the restrictions on the file-system of the server.

> So I'll better wait until the problems with VM be fixed.

Sorry to disappoint you, but I am no VM guy and it looks to me the
file primitives and the SecurityPlugin had to be changed to make
#directoryExists: work out of the box. Could well be that there are
other bugs in that area, I only know a few. As one of our famous
Squeak Masters would say: "Fixing. No, this ain't gonna happen." :-/

Cheers,
Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Magma on seasidehosting

Pablo Iaria
Thanks again!

I'm going to ask Chris and see what happens.

I have another questuin for you. In a previous mail you said:

"...To avoid that people touch critical parts of the system or file of
other hosted applications we hide them from the file-system using the
vm..."

Did you modified the VM to acchieve that? Or you just used the linux
security mechanism?

Cheers!
Pablo.-

On 8/23/06, Lukas Renggli <[hidden email]> wrote:

> > Lucas, thank you for the quick response!
> > I tried the code you sent me, but it didn't work.
>
> Your directory on seasidehosting.st looks odd, there are several
> database. It seems to be able to create the files now.
>
> .:
> insgesamt 49392
> -rw-r--r--  1 nobody   nogroup      3767 2006-08-23 14:29
> C:\personal\soft\edp\package-cache\EDP-PI.8.mcz
> -rw-r--r--  1 nobody   nogroup      3850 2006-08-23 14:52
> C:\personal\soft\edp\package-cache\EDP-PI.9.mcz
> drwxr-xr-x  3 webadmin webadmin     4096 2006-08-23 16:17 files
> drwxr-xr-x  2 webadmin webadmin     4096 2006-08-23 15:40 magma
> drwxrwxrwx  2 webadmin webadmin     4096 2006-08-17 15:08 resources
> -rw-rw-rw-  1 webadmin webadmin 17192133 2006-08-23 09:08
> Sq3.8f+seaside+magma.changes
> -rw-rw-rw-  1 webadmin webadmin 33290892 2006-08-23 09:08
> Sq3.8f+seaside+magma.image
> -rw-r--r--  1 nobody   nogroup      4378 2006-08-23 14:24 SqueakDebug.log
> lrwxrwxrwx  1 root     root           45 2006-08-23 14:24
> SqueakV3.sources -> /usr/local/lib/squeak/3.7-7s/SqueakV3.sources
>
> ./files:
> insgesamt 4
> drwxr-xr-x  2 webadmin webadmin 4096 2006-08-23 15:44 magma
>
> ./files/magma:
> insgesamt 44
> -rw-r--r--  1 webadmin webadmin   208 2006-08-23 15:44 applied.images
> -rw-r--r--  1 webadmin webadmin  1352 2006-08-23 15:44 commitPackages
> -rw-r--r--  1 webadmin webadmin 30653 2006-08-23 15:44 objects
> -rw-r--r--  1 webadmin webadmin  3181 2006-08-23 15:44 objects.idx
>
> ./magma:
> insgesamt 44
> -rw-r--r--  1 webadmin webadmin   208 2006-08-23 15:40 applied.images
> -rw-r--r--  1 webadmin webadmin  1352 2006-08-23 15:40 commitPackages
> -rw-r--r--  1 webadmin webadmin 30653 2006-08-23 15:40 objects
> -rw-r--r--  1 webadmin webadmin  3181 2006-08-23 15:40 objects.idx
>
> ./resources:
> insgesamt 0
>
> > In the mean time I created a repository in my local machine (with
> > win2k), compressed it and uploaded to my root directory ("root
> > directory"/magma). Now I got another error (I put the stack trace at
> > the end of the message).
>
> The error looks like to be deep inside Magma, so I can't understand
> what it means and what it tries to do. From the file-listing it looks
> like Magma created some files, I don't know if these files represent a
> complete database. Maybe you should ask Chris Muller in the Magma list
> what this error means and I could then further investigate if this is
> a problem with the restrictions on the file-system of the server.
>
> > So I'll better wait until the problems with VM be fixed.
>
> Sorry to disappoint you, but I am no VM guy and it looks to me the
> file primitives and the SecurityPlugin had to be changed to make
> #directoryExists: work out of the box. Could well be that there are
> other bugs in that area, I only know a few. As one of our famous
> Squeak Masters would say: "Fixing. No, this ain't gonna happen." :-/
>
> Cheers,
> Lukas
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Magma on seasidehosting

Lukas Renggli
> I'm going to ask Chris and see what happens.

I opened your image on my machine and it looks like that it tries to
open the database on c:\something\somethingelese. This could be the
problem, this certainly won't work on the linux server.

> I have another questuin for you. In a previous mail you said:
>
> "...To avoid that people touch critical parts of the system or file of
> other hosted applications we hide them from the file-system using the
> vm..."
>
> Did you modified the VM to acchieve that? Or you just used the linux
> security mechanism?

Both. We are using a modified version of the VM, with mainly a few
changes to the SecurityPlugin. Then we are also using the security
mechanism of linux and some additional linux tools to restrict CPU and
memory usage.

Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Magma on seasidehosting

Pablo Iaria
Lucas,

Thank you very much for your time!

On 8/23/06, Lukas Renggli <[hidden email]> wrote:
> > I'm going to ask Chris and see what happens.
>
> I opened your image on my machine and it looks like that it tries to
> open the database on c:\something\somethingelese. This could be the
> problem, this certainly won't work on the linux server.

Yes, that should fail.
But I got the error when I tried to create a new repository in the
linux box using the attribute "Location" from WAMagmaConfiguration
that currently is set to /service/edp/files/magma

Anyway I'll ask Chris way Magma fails if I try to use a repository
created in win2k.

>
> > I have another questuin for you. In a previous mail you said:
> >
> > "...To avoid that people touch critical parts of the system or file of
> > other hosted applications we hide them from the file-system using the
> > vm..."
> >
> > Did you modified the VM to acchieve that? Or you just used the linux
> > security mechanism?
>
> Both. We are using a modified version of the VM, with mainly a few
> changes to the SecurityPlugin. Then we are also using the security
> mechanism of linux and some additional linux tools to restrict CPU and
> memory usage.
>

ok, thanks a lot again!
Pablo.-

> Lukas
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Magma on seasidehosting

keith1y
In reply to this post by Pablo Iaria
Dear Pablo,

I had the same problem, though I havent got it working myself yet I did
submit some fixes which I believe have been incorporated into the latest
magma.

My fixes allow you to specify a local relative directory name for your
repository
. This is because if you use an absolute path on your development
machine it will be
the wrong one on seaside hosting.

So you might try putting your repository in a directory on
seasidehosting and refering to it by directory name.


Keith

               
___________________________________________________________
The all-new Yahoo! Mail goes wherever you go - free your email address from your Internet provider. http://uk.docs.yahoo.com/nowyoucan.html
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Magma on seasidehosting

Pablo Iaria
HI,

I'm back on this topic.

I asked Chris about this and he told me this:

"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
"

This seems to be an issue with the VM that I can't figure out how to solve.

Does anybody else have another clue?

Thanks,
Pablo.-



On 8/23/06, Keith Hodges <[hidden email]> wrote:

> Dear Pablo,
>
> I had the same problem, though I havent got it working myself yet I did
> submit some fixes which I believe have been incorporated into the latest
> magma.
>
> My fixes allow you to specify a local relative directory name for your
> repository
> . This is because if you use an absolute path on your development
> machine it will be
> the wrong one on seaside hosting.
>
> So you might try putting your repository in a directory on
> seasidehosting and refering to it by directory name.
>
>
> Keith
>
>
> ___________________________________________________________
> The all-new Yahoo! Mail goes wherever you go - free your email address from your Internet provider. http://uk.docs.yahoo.com/nowyoucan.html
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Magma on seasidehosting

Brian Chapados-2
> 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
> "
>
> This seems to be an issue with the VM that I can't figure out how to
solve.
>
> Does anybody else have another clue?

You might have already done this, but if you have shell access you can use
lsof to check for a file that is locked or in use by another process.  If
you don't have shell access, I think you can load OSProcess from squeakmap
and do:

UnixProcess thisOSProcess command: 'lsof'

(or something like this)

lsof is available from freshmeat (http://freshmeat.net/projects/lsof/) if
it's not preinstalled in your distribution, but this obviously won't help
you if you don't have a way to install it.


Brian

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Magma on seasidehosting

keith1y
In reply to this post by Lukas Renggli
Lukas,

I cant see how this fix would work seeing as Magma calls FileDirectory
exists which calls

FileDirectory>>primLookupEntryIn: fullPath index: index

best regards

Keith

>
> Ouch, I forgot a #pathName, try this instead:
>
> UnixFileDirectory >>directoryExists: filenameOrPath
>     "Handles the special case of testing for the root dir: there isn't a
>     possibility to express the root dir as full pathname like '/foo'."
>
>     ^ filenameOrPath = '/'
>         or: [ filenameOrPath = self class default pathName
>         or: [ super directoryExists: filenameOrPath ] ]
>

Send instant messages to your online friends http://uk.messenger.yahoo.com 
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Magma on seasidehosting

Lukas Renggli
> I cant see how this fix would work seeing as Magma calls FileDirectory
> exists which calls
>
> FileDirectory>>primLookupEntryIn: fullPath index: index

Are you sure?

I tried in a test image running in the restricted environment on
seasidehosting.st and I get the following results:

  FileDirectory default exists
    --> true

I've tried the following code on seasidehosting.st and it works
assuming that the directory 'resources' is present:

  (FileDirectory default directoryNamed: 'resources') assureExistence
    --> true

  (FileDirectory default directoryNamed: 'resources') assureExistence

If the directory in question in not there it doesn't work and the
primitive fails. FileDirectory assumes that all parent directories
have to be enumerable if a specific directory should be created, and
this is not the case on seasidehosting.st.

I don't understand right now why my patch does not help in that case.

Though it should be easy to fix the problem by creating the path
manually from the management interface? Then we have the case above
that works.

Keep me updated, I would like to get Magma running on seasidehosting.st.

Cheers,
Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Magma on seasidehosting

Pablo Iaria
Hi all!

I don't know what changed in seasidehosting, but now I have running
seaside+magma!!

Thanks to all!
Pablo.-

On 9/1/06, Lukas Renggli <[hidden email]> wrote:

> > I cant see how this fix would work seeing as Magma calls FileDirectory
> > exists which calls
> >
> > FileDirectory>>primLookupEntryIn: fullPath index: index
>
> Are you sure?
>
> I tried in a test image running in the restricted environment on
> seasidehosting.st and I get the following results:
>
>   FileDirectory default exists
>     --> true
>
> I've tried the following code on seasidehosting.st and it works
> assuming that the directory 'resources' is present:
>
>   (FileDirectory default directoryNamed: 'resources') assureExistence
>     --> true
>
>   (FileDirectory default directoryNamed: 'resources') assureExistence
>
> If the directory in question in not there it doesn't work and the
> primitive fails. FileDirectory assumes that all parent directories
> have to be enumerable if a specific directory should be created, and
> this is not the case on seasidehosting.st.
>
> I don't understand right now why my patch does not help in that case.
>
> Though it should be easy to fix the problem by creating the path
> manually from the management interface? Then we have the case above
> that works.
>
> Keep me updated, I would like to get Magma running on seasidehosting.st.
>
> Cheers,
> Lukas
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Magma on seasidehosting

keith1y
Pablo Iaria wrote:
> Hi all!
>
> I don't know what changed in seasidehosting, but now I have running
> seaside+magma!!
>
> Thanks to all!
> Pablo.-
>
Cool,

I just checked my test.image and still no joy
sigh

Keith
Send instant messages to your online friends http://uk.messenger.yahoo.com 
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Magma on seasidehosting

Lukas Renggli
In reply to this post by Pablo Iaria
> I don't know what changed in seasidehosting, but now I have running
> seaside+magma!!

Great, can you explain your configuration? Especially the thing with
the files (data-base location, setup).

Nothing has changed with the hosting itself.

Cheers,
Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Magma on seasidehosting

Lukas Renggli
In reply to this post by Brian Chapados-2
> System error log says (Which may be a problem!):
> acceptHandler: Too many open files
> acceptHandler: aborting server 7 pss=0x80f3d20
> socketStatus: freeing invalidated pss=0x80f3d20
> acceptHandler: Too many open files
> acceptHandler: aborting server 7 pss=0x80f3d58
> socketStatus: freeing invalidated pss=0x80f3d58
> acceptHandler: Too many open files
> acceptHandler: aborting server 7 pss=0x80f33b8
> socketStatus: freeing invalidated pss=0x80f33b8
> acceptHandler: Too many open files
> acceptHandler: aborting server 7 pss=0x80f33f0
> socketStatus: freeing invalidated pss=0x80f33f0
> acceptHandler: Too many open files
> acceptHandler: aborting server 7 pss=0x80f3428
> socketStatus: freeing invalidated pss=0x80f3428

This looks like you are opening too many files.

We have to restrict the amount of open files, to avoid that an account
eats up all the resources. I just raised the maximum number of open
files/sockets from 20 to 64, powers to two are cool and this seems to
me a more reasonable number. If you restart your VM you should get the
new quota. Tell me if this helps.

Cheers,
Lukas

--
Lukas Renggli
http://www.lukas-renggli.ch
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Magma on seasidehosting

Pablo Iaria
In reply to this post by Lukas Renggli
Sure!

I'm not sure why it's working now.

I set the magma repositoty path to /service/edp/files/magma (as was
suggested by WAMagmaConfiguration).

I did a small aplication to create the repository but it didn't work,
so I uploaded a blank repository created in winxp. In the beggining it
didn't work, but then it did (don't ask me why).

That was all I did.

Thanks again!
Pablo.-

On 9/1/06, Lukas Renggli <[hidden email]> wrote:

> > I don't know what changed in seasidehosting, but now I have running
> > seaside+magma!!
>
> Great, can you explain your configuration? Especially the thing with
> the files (data-base location, setup).
>
> Nothing has changed with the hosting itself.
>
> Cheers,
> Lukas
>
> --
> Lukas Renggli
> http://www.lukas-renggli.ch
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

[Ann] Magma now works on seasidehosting

keith1y
In reply to this post by Lukas Renggli
Thanks Lukas,

I think that the extra files setting helped a lot. I remember on Solaris
that I used to have to give my applications extra open files you may be
able to ask for more resources from the OS to help with this problem.

I now have test.image running the magma store example.

Using the MagmaControlPanel (in test.image) there is a button for
creating an empty repository, and a further button for initializing that
repository with some data. These steps are not included in the original
store-magma demo but I put them in so that the MagmaControlPanel UI
would have an example.

Remaining issue 1: At present you have to create the directory for the
repository manually.

Remaining issue 2: Having created and initialized my repository if I
click the 'done' button (which closesTheMagmaSession) The error is
likely to be a MagmaUserError 'No transaction to commit.' But this error
appears to break the whole application. Since I get a proxy error and
have to restart the image. If I simply ignore the 'done' button and go
back manually to the config page, everything works fine.

Keith


>>
>> acceptHandler: Too many open files
>> acceptHandler: aborting server 7 pss=0x80f3428
>> socketStatus: freeing invalidated pss=0x80f3428
>
> This looks like you are opening too many files.
>
> We have to restrict the amount of open files, to avoid that an account
> eats up all the resources. I just raised the maximum number of open
> files/sockets from 20 to 64, powers to two are cool and this seems to
> me a more reasonable number. If you restart your VM you should get the
> new quota. Tell me if this helps.
>
> Cheers,
> Lukas
>


               
___________________________________________________________
Try the all-new Yahoo! Mail. "The New Version is radically easier to use" – The Wall Street Journal
http://uk.docs.yahoo.com/nowyoucan.html
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside