[ZODB-Dev] Assertion failed: key != Py_None, file ZODB/cPickleCache.c, line 445

Tim Hoffman timh at zute.net
Sat May 17 02:32:04 EDT 2003


HI Jeremy 

I can compile (I always install from a source build on Solaris), so I
will try it, 

I came too the conclusion that "assert" might be the correct behaviour
deep in the bowels of ZODB (because it might prevent data corruption)
you know fail rather than corrupt. However it provides you know
way of working out what is going on, whereas an exception can 
at least let you see a stack trace and get some idea of what 
led to the situation.

So thanks for the tip

Tim 


On Sat, 2003-05-17 at 00:27, Jeremy Hylton wrote:
> On Fri, 2003-05-16 at 11:41, Tim Hoffman wrote:
> > Hi
> > 
> > In the last few days I have starting getting this error a lot
> > (which causes Zope (well python actually) to dump core)
> > 
> > Assertion failed: key != Py_None, file ZODB/cPickleCache.c, line 445
> > 
> > I am using Solaris 8, gcc 3.1, Python 2.1.3 and Zope 2.6.1 and CMF
> > 1.4Beta1
> > 
> > It only occurrs when we try to retrieve an object through path traversal
> > when editing an object (we may have sucessfully edited the object a
> > dozen times before the error starts occuring (ie when calling
> > folder_edit_contents, or some other edit method, haven't got to trying
> > to actually update the object just retrieving it. All of the objects are
> > subclassed from portal_folder). Once this starts happening every time I
> > try to edit (not save, but retrieve) the object I get the above error.
> > If I copy the object, then the problem does not occur on the copy, but
> > continues on the original object, such that I have to and can delete it.
> > 
> > I am not really sure where to start looking. I plan on Monday to start 
> > putting debug code to try and isolate the conditions.
> > 
> > Has anyone else got any ideas on where to look?
> 
> I'm not sure where to look, but if you can test with ZODB 3.1.2b1, you
> will get a Python exception instead of an assertion error.  I tried
> passing None explicitly with 3.1.2b1 and it raises a TypeError: len() of
> unsized object.
> 
> The exception will make it much easier to track down what is going
> wrong.
> 
> Jeremy
> 
> 





More information about the ZODB-Dev mailing list