[Zope-ZEO] ZEO-0.2

Greg Ward gward@mems-exchange.org
Wed, 10 May 2000 17:09:49 -0400


[Jim]
> Actually, for now, I think it would be a reasonable compromise to
> have ZEO's __init__.py try to import ZServer.  I'll make it so for 
> the next release and I suggest you do this in your copy as well.

[me]
> That sounds like a good solution.  I'll roll back my patch and do this
> instead.

Oops, I spoke to soon -- this fix just seems to break things in a
different way.  Here's what I did:

  * rolled back to the original ZEO 0.2 code you sent this morning;
    as expected, client initialization fails because you're passing
    three arguments to the asyncore constructor in the standard
    library

  * edit ZEO/__init__.py and added the line "import ZServer".
    Now client initialization dies in a much more mysterious way;
    here's the traceback:

    Traceback (innermost last):
      File "./populate_users.py", line 18, in ?
        from mxtoy import virtual_fab, util
      File "/home/gward/lib/python/mxtoy/__init__.py", line 59, in ?
        virtual_fab.init ()
      File "/home/gward/lib/python/mxtoy/virtual_fab.py", line 279, in init
        _virtual_fab = apply (_VirtualFab, (database,), extra_info)
      File "/home/gward/lib/python/mxtoy/virtual_fab.py", line 90, in __init__
        self._init_zeo (extra_info)
      File "/home/gward/lib/python/mxtoy/virtual_fab.py", line 174, in _init_zeo
        self._init_zodb(extra_info)
      File "/home/gward/lib/python/mxtoy/virtual_fab.py", line 150, in _init_zodb
        self.db = DB (storage)
      File "/export/www/zope/Zope-2.2cvs/lib/python/ZODB/DB.py", line 125, in __init__
      File "/www/zope/Zope-2.2cvs/lib/python/ZEO/ClientStorage.py", line 224, in registerDB
        self._startup()
      File "/www/zope/Zope-2.2cvs/lib/python/ZEO/ClientStorage.py", line 145, in _startup
        if not self._call.connect():
      File "/www/zope/Zope-2.2cvs/lib/python/ZEO/zrpc.py", line 149, in connect
        self.aq_parent.notifyConnected(s)
      File "/www/zope/Zope-2.2cvs/lib/python/ZEO/ClientStorage.py", line 166, in notifyConnected
        self._info.update(self._call('get_info'))
      File "/www/zope/Zope-2.2cvs/lib/python/ZEO/zrpc.py", line 193, in __call__
        if type(r) is TupleType: raise r[0], r[1]
    AttributeError: find_global

    I've looked back all along the call stack, and don't see any
    references to a 'find_global' attribute anywhere.

So now I'm back to running my hacked version of ZEO 0.2, ie. with
"import asyncore" changed everywhere to "from ZServer.medusa import
asyncore".  Works like a charm.

        Greg