[Zope] Re: Cache Problems

Butch Landingin butchland@yahoo.com
Thu, 15 Jul 1999 02:21:30 +0000 (GMT)


-----Original Message----- From: mhudson@devis.com :
> I am running Zope 2 and am having some squirrelly things going on with the cache.  I have been >
having some problems managing the site (for instance adding
> something to a folder and having it appear in the folder above, deleting something and adding it
> back and the old version is there).  So far this has all had to do with
> images, so I was assuming the browser was caching sloppily, blah, blah.  But when I went under
the 
> control panel and tried to clear the cache I received the
> following traceback:
<snip>

I've reported this as a bug in ZCollector. I also posted a possible fix (it also needs to tested
better). You can try it, but YMMV.

cvs -z9 diff -c9 DB.py (in directory C:\PYTHON\ZOPE\LIB\PYTHON\ZODB)
Index: DB.py
===================================================================
RCS file: /cvs-repository/Packages/ZODB/DB.py,v
retrieving revision 1.10
diff -c -9 -r1.10 DB.py
*** DB.py	1999/07/07 19:57:55	1.10
--- DB.py	1999/07/15 02:20:07
***************
*** 180,198 ****
              version=connection._version
              pools,pooll=self._pools
              pool, allocated, pool_lock = pools[version]
              pool.append(connection)
              if len(pool)==1:
                  # Pool now usable again, unlock it.
                  pool_lock.release()
          finally: self._r()
          
!     def _connectionMap(self, f):
          self._a()
          try:
              pools,pooll=self._pools
              for pool, allocated in pooll:
                  for cc in allocated: f(cc)
  
              temps=self._temps
              if temps:
                  t=[]
--- 180,198 ----
              version=connection._version
              pools,pooll=self._pools
              pool, allocated, pool_lock = pools[version]
              pool.append(connection)
              if len(pool)==1:
                  # Pool now usable again, unlock it.
                  pool_lock.release()
          finally: self._r()
          
!     def _connectionMap(self, f, rc=sys.getrefcount):
          self._a()
          try:
              pools,pooll=self._pools
              for pool, allocated in pooll:
                  for cc in allocated: f(cc)
  
              temps=self._temps
              if temps:
                  t=[]

*****CVS exited normally with code 1*****

HTH.

Butch Landingin
butchland@yahoo.com


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com