[ZODB-Dev] [ zodb-Bugs-550093 ] TypeError masking exception on server

noreply@sourceforge.net noreply@sourceforge.net
Sat, 09 Nov 2002 14:35:57 -0800


Bugs item #550093, was opened at 2002-04-29 06:16
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=115628&aid=550093&group_id=15628

Category: None
Group: None
Status: Open
Resolution: None
>Priority: 1
Submitted By: Chris Withers (fresh)
Assigned to: Jeremy Hylton (jhylton)
Summary: TypeError masking exception on server

Initial Comment:
We see quite a few of these errors:

Traceback (innermost last):
  File /usr/local/zope/2.5.1b1_base/z2.py, line 495, in ?
  File <string>, line 1, in ?
  File /usr/local/zope/2.5.1b1/lib/python/Zope/__init__.py, line 45, in ?
  File /usr/local/zope/2.5.1b1/lib/python/ZODB/DB.py, line 77, in __init__
  File /usr/local/zope/2.5.1b1_base/lib/python/ZEO/ClientStorage.py, line 365, in load
    (Object: ('x', xxxx))
  File /usr/local/zope/2.5.1b1_base/lib/python/ZEO/zrpc.py, line 239, in __call__
TypeError: exceptions must be strings, classes, or instances, not None

...which indicates an exception is being raised on the storage server.

However, the way the exceptions are being dealt with means the true exception type
is being masked and this meaningless error is being returned.

Unfortunately, frequently no matching error can be found in the server logs and so we never do 
find the cause :-(

I suspect that one possible cause of this may be when an exception is raised on the server and the 
exception class cannot be found on the client and so cannot properly be raised. Degrading to 
displaying a string of the exception name would be mroe useful here.

That said, that's only a guess ;-)

cheers,

Chris


----------------------------------------------------------------------

Comment By: Guido van Rossum (gvanrossum)
Date: 2002-11-09 17:25

Message:
Logged In: YES 
user_id=6380

Is this still relevant with Zope 2.6 and ZODB 3.1?

----------------------------------------------------------------------

Comment By: Chris Withers (fresh)
Date: 2002-04-29 15:52

Message:
Logged In: YES 
user_id=24723

Well, just to make sure you know, that's only a hypothesis. I'm damn sure there are other things which 
cause the problem other than exception classes not being present...

As for what to do, well, a pickle must have the classname in it? If so, a string representation of that would 
be the best idea :-)

----------------------------------------------------------------------

Comment By: Jeremy Hylton (jhylton)
Date: 2002-04-29 15:25

Message:
Logged In: YES 
user_id=31392

Thanks for the explanation.  We may be able to do something
more sensible, although it's not clear what since all we're
left with is an unpicklable pickle.
 

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=115628&aid=550093&group_id=15628