[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