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

_______________________________________________
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to