[ZODB-Dev] Weird errors with Zope 2.7.7

Chris Withers chris at simplistix.co.uk
Fri Oct 21 10:28:21 EDT 2005


Tim Peters wrote:
> 
> If a client restarted during the day, wouldn't you find evidence of that in
> your logs?

Yep...

> This is all there is to it, where Data.fs has a single large OOBTree
> attached as to the root under key "tree":
> 
> 
>>>>st = ZODB.FileStorage.FileStorage('Data.fs')
>>>>db = ZODB.DB(st)
>>>>cn = db.open()
>>>>rt = cn.root()
>>>>tree = rt['tree']
>>>>type(tree)
> 
> <extension class BTrees.OOBTree.OOBTree at 00C99660>
> 
>>>>cn.close()  # DON'T BLINK
>>>>tree[20]

Yep, I understand the mechanics, just not where it's happening ;-)

> BTW, because we didn't see ConnectionStateError at the time cn.close() was
> done, we know that no objects loaded from the Connection were left in a
> modified state.  

That sounds like a good thing :-)

> BTW, I haven't seen a traceback associated with your "shouldn't load state"
> problems.  Do any exist?  (I understand they may not be logged, I'm
> wondering if you can see them from the ZMI.  If it _is_ unintentional
> caching, a traceback could be invaluable.)

I agree.

Do you mind if I apply the following patch to the ZODB trunk?

Index: Connection.py
===================================================================
--- Connection.py       (revision 39510)
+++ Connection.py       (working copy)
@@ -725,7 +725,7 @@
          if self._opened is None:
              msg = ("Shouldn't load state for %s "
                     "when the connection is closed" % oid_repr(oid))
-            self._log.error(msg)
+            self._log.error(msg,exc_info=True)
              raise ConnectionStateError(msg)

          try:
@@ -734,7 +734,7 @@
              raise
          except:
              self._log.error("Couldn't load state for %s", oid_repr(oid),
-                            exc_info=sys.exc_info())
+                            exc_info=True)
              raise

      def _setstate(self, obj):

(the second bit should happen anyway ;-) )

Once this is done, how does it wend its way into a Zope 2.8 release?
What other branches / changes.txt files should I merge to?

cheers,

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk


More information about the ZODB-Dev mailing list