[Zope-dev] Core Dump (Zope 2.7, Python 2.3.3, FreeBSD 4.5)

Dieter Maurer dieter at handshake.de
Fri Feb 20 12:37:44 EST 2004


Dieter Maurer wrote at 2004-2-19 19:52 +0100:
>We have a report for Zope 2.7 about an object magically turning
>into "None" (1 or 2 weeks ago).
>
>A similar problem was discovered recently by a colleague.
>I started analysing it today. It turned out that
>objects are non-deterministically converted into "None".
>
>I have seen such behaviour in the past (with an old Python version).
>Later, it turned out to be a memory corruption problem in this Python
>version.
>Memory corruption can also cause death with a core dump.
>
>
>It is well possible that our problem is caused by
>my Zope modifications or other (third party) C level extensions.
>But, there might also be some lingering problem in Python2.3.3/Zope2.7.

After having looked at the Python code, I recognize
the extreme low likelyhood that a memory corruption
manifests itself in objects becoming "None".

I was able to explain most (if not all) of our problems
from harmless causes:

  *  I had a bare "return" in a function that should return
     a value -- protected by a condition that is true
     only under very special (history dependent) circumstances.

     This explains the apparently non-deterministic apparent
     "transition" to "None". In fact, no object transitioned
     to "None" and the behaviour was completely deterministic.

  *  Another family of incidents where apparently constant
     objects became "None" was explained by the well
     known "refresh" property to bind the variables
     in a flushed module to "None".
     
  *  A third report is not yet explained but I am confident
     that it, too, will find an explanation without
     a memory corruption assumption.

-- 
Dieter



More information about the Zope-Dev mailing list