[ZODB-Dev] ZEO client unpickling error

Dunigan, Craig craig.dunigan@esker.com
Thu, 28 Jun 2001 11:12:25 -0500


FWIW, I resolved this by re-installing both Zope and ZEO.  My current guess
as to the cause is some kind of ZEO Client cache corruption, but I didn't
have any more time to spend tracking it down, I had to get that server back
online ASAP.  

It also appears that ZEO on Zope 2.3.3 needs a symlink for cPickle in
<zopehome>/lib/python/ZODB, even on Linux (I was told I'd have to copy that
file under NT, which is how I figured the symlink would correct the "Cannot
import up-to-date cPickle" errors).  Since I had to create this symlink
before on this machine, and eventually got unpickling errors, I am wondering
if this issue might not recur?  Since this particular ZEO connection has to
happen over a VPN that is unpredictable (I periodically can't even ping from
ZEO Client to ZEO Server), is there a possibility that there is some work to
do on ZEO so that it either handles inconsistent connections gracefully, or
that the documentation says "don't use this over an unreliable connection?"
Just a thought to ponder.

I do want to close by saying that I still think ZEO is the finest piece of
database/networking software I've ever seen.  Thank you so much for all your
hard work!

Craig Dunigan
Web Programmer
Esker Software - Extending the Reach of Information
mailto:craig.dunigan@esker.com
Ph. 608.273.6000
Fax 608.273.8227
http://www.esker.com

> -----Original Message-----
> From: Dunigan, Craig [mailto:craig.dunigan@esker.com]
> Sent: Wednesday, June 27, 2001 12:50 PM
> To: 'zodb-dev@zope.org'
> Subject: [ZODB-Dev] ZEO client unpickling error
> 
> 
> I have several ZEO 1.0b3 clients on RedHat 7 (connecting back 
> to a ZEO 1.0b3
> server on NT4/SP6), and all but one are working fine.  This 
> one connects via
> VPN, the others via frame relay.  While it's given me lots of 
> trouble in the
> past, restarting ZEO and Zope always fixed it.  Now, a 
> restart gives only
> "UnpicklingError, invalid load key, ' '.", with this traceback:
> 
> Traceback (innermost last):
>   File ./lib/python/ZPublisher/Publish.py, line 223, in publish_module
>   File ./lib/python/ZPublisher/Publish.py, line 187, in publish
>   File /opt/Zope/ZopeInst/lib/python/Zope/__init__.py, line 221, in
> zpublisher_exception_hook
>     (Object: Traversable)
>   File ./lib/python/ZPublisher/Publish.py, line 171, in publish
>   File /opt/Zope/ZopeInst/lib/python/ZPublisher/mapply.py, 
> line 160, in
> mapply
>     (Object: index_html)
>   File ./lib/python/ZPublisher/Publish.py, line 112, in call_object
>     (Object: index_html)
>   File /opt/Zope/ZopeInst/lib/python/OFS/DTMLDocument.py, line 189, in
> __call__
>     (Object: index_html)
>   File 
> /opt/Zope/ZopeInst/lib/python/DocumentTemplate/DT_String.py, line
> 538, in __call__
>     (Object: index_html)
>   File /opt/Zope/ZopeInst/lib/python/TreeDisplay/TreeTag.py, 
> line 154, in
> render
>     (Object: REQUEST.resolve_url(BASE0 + '/base'))
>   File /opt/Zope/ZopeInst/lib/python/TreeDisplay/TreeTag.py, 
> line 260, in
> tpRender
>     (Object: Traversable)
>   File /opt/Zope/ZopeInst/lib/python/TreeDisplay/TreeTag.py, 
> line 514, in
> tpRenderTABLE
>     (Object: Traversable)
>     (Info: (['AAAAAAAAJJE=', []], {'childless_decoration': 
> '', 'id': 'tpId',
> 'branches_expr': &lt;method Eval.eval of Eval instance at 8725418&gt;,
> 'nowrap': '1', 'expr': &lt;DocumentTemplate.DT_Util.Eval instance at
> 86f3898&gt;, 'url': 'tpURL', 'sort': 'title'}, 
> (['AAAAAAAAJJE=', []],),
> (['AAAAAAAAJJE=', []],)))
>   File /opt/Zope/ZopeInst/lib/python/TreeDisplay/TreeTag.py, 
> line 315, in
> tpRenderTABLE
>     (Object: CatalogAware)
>   File 
> /opt/Zope/ZopeInst/lib/python/DocumentTemplate/VSEval.py, line 208,
> in eval
>     (Object: EWHomeTree())
>   File &lt;string&gt;, line 0, in ?
>   File 
> /opt/Zope/ZopeInst/lib/python/Shared/DC/Scripts/Bindings.py, line
> 324, in __call__
>     (Object: EWHomeTree)
>   File 
> /opt/Zope/ZopeInst/lib/python/Shared/DC/Scripts/Bindings.py, line
> 354, in _bindAndExec
>     (Object: EWHomeTree)
>   File 
> /opt/Zope/ZopeInst/lib/python/Products/PythonScripts/PythonScript.py,
> line 336, in _exec
>     (Object: EWHomeTree)
>     (Info: ({'script': &lt;PythonScript instance at 
> 8765100&gt;, 'context':
> &lt;YihawChannel instance at 87d5aa0&gt;, 'container': 
> &lt;Folder instance
> at 8623ff8&gt;, 'traverse_subpath': []}, (), {}, None))
>   File Script (Python), line 7, in EWHomeTree
>   File 
> /opt/Zope/ZopeInst/lib/python/Products/PythonScripts/Guarded.py, line
> 273, in __getattr__
>   File 
> /opt/Zope/ZopeInst/lib/python/Products/PythonScripts/Guarded.py, line
> 143, in __careful_getattr__
>   File ./lib/python/ZODB/Connection.py, line 533, in setstate
> UnpicklingError: (see above)
> 
> EWHomeTree is my Python Script that returns a list to form 
> the branches_expr
> of a tree tag on the home page.  All it does is exclude some branches,
> here's the code:
> 
> linkList=[]
> for linkObject in context.objectValues('Yihaw Folder'):
>   if (not linkObject.title=="People") and (not 
> linkObject.title=="Library")
> and (not linkObject.title=="Company Departments"):
>     linkList.append(linkObject)
> return linkList
> 
> This worked fine from this location yesterday.  The only 
> thing I did was
> complete work on a perl daemon to restart zope and zeo if they stopped
> responding, since one of the things that box has been experiencing is
> periodic zope hangs.  I modified 'start' to include a line to 
> start zeo
> using sudo, and a line to start my daemon.  I also put the 
> needed lines into
> 'stop', and made sure that the init.d script (from
> http://www.zope.org/Members/markoer2/resources/howtos/redhat_s
tartup) worked
when I did a '/etc/rc.d/init.d/zope restart'.  Everything seemed fine.  Then
I got an email from this location saying zope stopped responding and
wouldn't restart.  I eventually got it to restart, but now it only returns
the above error page.  I am again completely without a clue where to go from
here.  Any ideas?

Craig Dunigan
Web Programmer
Esker Software - Extending the Reach of Information
mailto:craig.dunigan@esker.com
Ph. 608.273.6000
Fax 608.273.8227
http://www.esker.com

_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://lists.zope.org/mailman/listinfo/zodb-dev