ZopeCVS (trunk) from 9.1.2002; Python 2.1.1; Linux 2

I just met really strange behaviour:

  For testing purposes, I did:
        export ZODB_READ_ONLY=1
        >>> import Zope

  This lead to a deadlock in "ThreadLock.acquire".

  I ran the process in GDB with breakpoints in "ThreadLock.acquire"
  and "ThreadLock.release". After a while, I get an

 >   File "/home/dieter/Haufe/src/Zope/lib/python/Zope/__init__.py", line 77, in ?     
 >   File "/home/dieter/Haufe/src/Zope/lib/python/OFS/Application.py", line 316, in 
 >     delNotification = delnotify, limit=limit)
 >   File "/home/dieter/Haufe/src/Zope/lib/python/Products/Transience/Transience.py", 
 >line 114, in __init__
 >     self._reset()
 >   File "/home/dieter/Haufe/src/Zope/lib/python/Products/Transience/Transience.py", 
 >line 334, in _reset
 >     self._ring = Ring(l, index)
 >   File "/home/dieter/Haufe/src/Zope/lib/python/Products/Transience/Transience.py", 
 >line 479, in __init__
 >     raise "ring must have at least one element"
 > ring must have at least one element

Analysis reveals, that in "_reset" we have:

 > (Pdb) p vars(self)
 > {'_err_margin': 0.20000000000000001, 'id': 'session_data', '_delCallback': None, 
 >'title': 'Session Data Container', '_timeout_secs': 1200, '_limit': 1000, 
 >'_addCallback': None, '_resolution_secs': -2147483648}

"_resolution_secs" is severely wrong! It was computed by:

 >  t_secs = self._timeout_secs
 >  r_secs = self._resolution_secs = int(t_secs * self._err_margin) or 1

and the result should have been "240" which I get, when I evaluate
the expression in "pdb".

Some serious bug is lingering here. I expect a memory corruption.


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

Reply via email to