[Zope] Re: Mounting ZODB issue

Tres Seaver tseaver at palladion.com
Tue May 9 11:20:24 EDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jonathan Cleaver wrote:
> Well, setting my Zope to run in Debug mode has shed some light on it,
> but I still do not know how to fix this. On trying to connect to the
> ZODB, I am getting the following error:
> 
> 2006-05-09 15:43:09 INFO ZEO.ClientStorage (14591) Testing connection
> <ManagedClientConnection ('10.4.96.96', 8000)>
> 2006-05-09 15:43:09 ERROR ZEO.zrpc.Connection(C) (10.4.96.96:8000) bad
> handshake 'Z201'
> 2006-05-09 15:43:09 ERROR ZEO.zrpc.Connection(C) (10.4.96.96:8000) Error
> caught in asyncore
> Traceback (most recent call last):
>   File "/home/zope2/Zope285/lib/python/ZEO/zrpc/connection.py", line
> 706, in pending
>     self.handle_read_event()
>   File "/usr/local/python2.3/lib/python2.3/asyncore.py", line 390, in
> handle_read_event
>     self.handle_read()
>   File "/home/zope2/Zope285/lib/python/ZEO/zrpc/smac.py", line 219, in
> handle_read
>     self.message_input(msg)
>   File "/home/zope2/Zope285/lib/python/ZEO/zrpc/connection.py", line
> 791, in recv_handshake
>     Connection.recv_handshake(self, proto)
>   File "/home/zope2/Zope285/lib/python/ZEO/zrpc/connection.py", line
> 379, in recv_handshake
>     raise ZRPCError("bad handshake %r" % proto)
> ZRPCError: bad handshake 'Z201'
> 2006-05-09 15:43:09 ERROR ZEO.zrpc (14591) CW: error in testConnection
> (('10.4.96.96', 8000))
> Traceback (most recent call last):
>   File "/home/zope2/Zope285/lib/python/ZEO/zrpc/client.py", line 483, in
> test_connection
>     self.preferred = self.client.testConnection(self.conn)
>   File "/home/zope2/Zope285/lib/python/ZEO/ClientStorage.py", line 466,
> in testConnection
>     auth = stub.getAuthProtocol()
>   File "/home/zope2/Zope285/lib/python/ZEO/ServerStub.py", line 85, in
> getAuthProtocol
>     return self.rpc.call('getAuthProtocol')
>   File "/home/zope2/Zope285/lib/python/ZEO/zrpc/connection.py", line
> 529, in call
>     raise DisconnectedError()
> DisconnectedError
> 
> 
> Jonathan Cleaver wrote:
> 
>> Many thanks for the advice.
>>
>> Yes, the user does have read/write access to the zeo/var directory on
>> the server and all of its contents.
>>
>> Still no joy though.
>>
>> Jonathan Cleaver
>>
>>
>> Jonathan wrote:
>>
>>> Do you have the appropriate access to the directory on the server?
>>> (ie. the process zope runs as needs to be able to read/write to the
>>> directory on the server).
>>>
>>>
>>> Jonathan
>>>
>>> ----- Original Message ----- From: "Jonathan Cleaver"
>>> <jcleaver.hq at da.mod.uk>
>>> To: <zope at zope.org>
>>> Sent: Tuesday, May 09, 2006 7:50 AM
>>> Subject: [Zope] Mounting ZODB issue
>>>
>>>
>>>> Hi all,
>>>>
>>>> I am trying to mount the ZODB of a Plone 2.0.5/Zope-2.7.6/Python
>>>> 2.3.5 on a Plone 2.1.2/Zope-2.8.5/Python 2.3.5
>>>>
>>>> I have created the appropriate entry in the zope.conf thus...
>>>>
>>>> <zodb_db weeble>
>>>>   mount-point /weeble
>>>>   <zeoclient>
>>>>     server 10.4.96.98:9999
>>>>     storage 1
>>>>     name zeostorage
>>>>     var $INSTANCE/var
>>>>   </zeoclient>
>>>> </zodb_db>
>>>>
>>>> I know that this setup works on another Zope instance, because I cut
>>>> and pasted it out of the zope.conf there. I do not believe that
>>>> there are any firewall issues between the servers because a seperate
>>>> instance on t the same machine is already connecting to this ZEO
>>>> server.
>>>>
>>>> The problem that I have is that when I create a ZODB Mount Point,
>>>> the weeble mount point appears available but when I click Create the
>>>> browser just sits there waiting for a reply that never comes. The
>>>> ZODB Mount Point is not created. The Zope instance, however, does
>>>> not appear to deadlock; I can just stop the browser browse the ZMI
>>>> perfectly well.
>>>>
>>>> Is this a Zope version issue? Is there a 'rule' in ZEO where it can
>>>> only accept one connection from each client machine? Or have I just
>>>> missed a step in the process?
>>>>
>>>> Many thanks in advance.

You probably need to upgrade the storage server to a newer ZODB version.
 From the README.txt in my ZODB-3_4-branch sandbox:

> Compatibility
> -------------
> 
> ZODB 3.4 requires Python 2.3.4 or later.  For best results, we recommend
> Python 2.3.5.  Python 2.4.1+ can also be used.
> 
> The Zope 2.8 release is compatible with this version of ZODB.  Note that
> Zope 2.7 and higher includes ZEO, so this package should only be needed to
> run a ZEO server.
> 
> ZEO servers and clients are wholly compatible among 3.3, 3.3.1 and 3.4: a ZEO
> client from any of those versions can talk with a ZEO server from any.
> 
> Trying to mix ZEO clients and servers from 3.3 or later from ZODB releases
> before 3.3 is much harder.   ZODB 3.3 introduced multiversion concurrency
> control (MVCC), and earlier ZEO servers do not support MVCC:  a 3.3+ ZEO
> client cannot talk with an older ZEO server as a result.
> 
> In the other direction, a 3.3+ ZEO server can talk with older ZEO clients,
> but because the names of some basic classes have changed, if any 3.3+ clients
> commit modifications to the database it's likely that the database will
> contain instances of classes that don't exist in (can't be loaded by) older
> ZEO clients.  For example, the database root object was an instance of
> ``ZODB.PersistentMapping.PersistentMapping`` before ZODB 3.3, but is an
> instance of ``persistent.mapping.PersistentMapping`` in ZODB 3.3.  A 3.3.1+
> client can still load a ``ZODB.PersistentMapping.PersistentMapping`` object,
> but this is just an alias for ``persistent.mapping.PersistentMapping``, and
> an object of the latter type will be stored if a 3.3 client commits a change
> to the root object.  An older ZEO client cannot load the root object so
> changed.
> 
> This limits migration possibilities:  a 3.3+ ZEO server can be used with
> older (pre-3.3) ZEO clients and serve an older database, so long as no 3.3+
> ZEO clients commit changes to the database.  The most practical upgrade path
> is to bring up both servers and clients using 3.3+, not trying to mix pre-3.3
> and post-3.3 ZEO clients and servers.


Tres.
- --
===================================================================
Tres Seaver          +1 202-558-7113          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFEYLM4+gerLs4ltQ4RAmYRAKDEt0B2mX6Wskg69u66//Sn8MKf7ACgnuTE
2hth9XB155U14zU54lHDNN4=
=PvcL
-----END PGP SIGNATURE-----



More information about the Zope mailing list