Chris McDonough wrote: > OK, thanks John.
Thank you for helping. > I hate to ask this (I should have done this to start with), but would > you be willing to use the following patch --against the original file, > not your recently patched version-- and try again? I only checked one > of the two BTrees that might be at the heart of the problem with the > first patch, this patch checks the second as well. Put the patch in place and have a couple errors already. Doesn't look like its going to be much help though. Just a couple repetitions of this: ------ 2003-03-14T03:35:53 PROBLEM(100) Transience KeyError raised in get, checking BTrees ------ 2003-03-14T03:35:53 PROBLEM(100) Transience BTree check for data succeeded ------ 2003-03-14T03:35:53 PROBLEM(100) Transience BTree check for index succeeded > - C > > > On Thu, 2003-03-13 at 18:18, John Eikenberry wrote: > > > > Patch applied and the first results are in... so far its a lot of these: > > > > > > 2003-03-13T15:18:07 PROBLEM(100) Transience KeyError raised in get, > > checking _data BTree > > ------ > > 2003-03-13T15:18:07 PROBLEM(100) Transience BTree check succeeded > > > > > > Chris McDonough wrote: > > > > > Hi John, > > > > > > Can you apply the attached diff to your Transience.py file and run with > > > it in place for a couple of days? It will not fix the problem (the > > > symptoms will remain) but it should print some diagnostic information to > > > the Zope event log (the STUPID_LOG_FILE, hopefully you've got that > > > going) that will help us track down what this might be. > > > > > > Once you notice it happen, send the relevant parts of your logfile to me > > > and I will see if I can analyze it. > > > > > > - C > > > > > > > > > > > > > > > On Thu, 2003-03-13 at 15:19, John Eikenberry wrote: > > > > > > > > Sorry, its Zope 2.6.1. > > > > > > > > Chris McDonough wrote: > > > > > > > > > John, > > > > > > > > > > Which Zope 2.6? Zope 2.6.1? Here's what line 807 of the current > > > > > Transience.py looks like: > > > > > > > > > > v = self._data[b].get(k, notfound) > > > > > > > > > > Does yours look like that? > > > > > > > > Yes. > > > > > > > > > What is the value of the __version__ variable at the top of the > > > > > Transience.py file? > > > > > > > > __version__='$Revision: 1.28.6.4 $'[11:-2] > > > > > > > > > > > > > On Thu, 2003-03-13 at 07:11, John Eikenberry wrote: > > > > > > Since upgrading to Zope-2.6 we've been getting KeyErrors when using > > > > > > Sessions. They seem to happen more now that we've started using > > > > > > hasSessionData(), but I'm pretty sure they happened prior to that. > > > > > > > > > > > > Anyways, here are the 2 related tracebacks. Has anyone else seen these? > > > > > > > > > > > > Traceback #1 occurs most frequently. The KeyError's value is an unprintable > > > > > > string of non-ascii characters. > > > > > > > > > > > > * Module ZPublisher.Publish, line 150, in publish_module > > > > > > * Module ZPublisher.Publish, line 114, in publish > > > > > > * Module The application server.App.startup, line 182, in > > > > > > zpublisher_exception_hook > > > > > > * Module ZPublisher.Publish, line 98, in publish > > > > > > * Module ZPublisher.mapply, line 88, in mapply > > > > > > * Module ZPublisher.Publish, line 39, in call_object > > > > > > * Module App.special_dtml, line 61, in __call__ > > > > > > * Module DocumentTemplate.DT_String, line 474, in __call__ > > > > > > * Module Products.Transience.Transience, line 342, in nudge > > > > > > * Module Products.Transience.Transience, line 467, in _getCurrentBucket > > > > > > * Module Products.TemporaryFolder.LowConflictConnection, line 34, in > > > > > > setstate > > > > > > * Module Products.TemporaryFolder.TemporaryStorage, line 94, in load > > > > > > KeyError: > > > > > > > > > > > > Traceback #2 happens less frequently, though today it seemed like it was > > > > > > trying to catch up (3 of these today). > > > > > > > > > > > > * Module ZPublisher.Publish, line 98, in publish > > > > > > * Module ZPublisher.mapply, line 88, in mapply > > > > > > * Module ZPublisher.Publish, line 39, in call_object > > > > > > * Module OFS.DTMLMethod, line 126, in __call__ > > > > > > * Module DocumentTemplate.DT_String, line 474, in __call__ > > > > > > * Module Products.DotOrg.Pages.KContent, line 149, in __call__ > > > > > > * Module Products.DotOrg.Pages.KContent, line 194, in getEditInfo > > > > > > * Module Products.DotOrg.Pages.KContent, line 506, in hasSessionData > > > > > > * Module Products.Sessions.SessionDataManager, line 101, in hasSessionData > > > > > > * Module Products.Sessions.SessionDataManager, line 175, in > > > > > > _hasSessionDataObject > > > > > > * Module Products.Transience.Transience, line 838, in has_key > > > > > > * Module Products.Transience.Transience, line 807, in get > > > > > > > > > > > > KeyError: 1047409860 > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > John Eikenberry [EMAIL PROTECTED] > > > > > > ______________________________________________________________ > > > > > > "A society that will trade a little liberty for a little order > > > > > > will deserve neither and lose both." > > > > > > --B. Franklin > > > > > > > > > > > > _______________________________________________ > > > > > > 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 ) > > > > > > > > > > > > > > > > > > -- > > > > > > > > John Eikenberry [EMAIL PROTECTED] > > > > ______________________________________________________________ > > > > "A society that will trade a little liberty for a little order > > > > will deserve neither and lose both." > > > > --B. Franklin > > > > > > > > _______________________________________________ > > > > 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 ) > > > > > > > > ? btreecheck.diff > > > ? kedaipatch > > > Index: Transience.py > > > =================================================================== > > > RCS file: /cvs-repository/Zope/lib/python/Products/Transience/Transience.py,v > > > retrieving revision 1.28.6.4 > > > diff -r1.28.6.4 Transience.py > > > 34a35 > > > > from BTrees.check import check, display > > > 45a47 > > > > from cStringIO import StringIO > > > 807c809,830 > > > < v = self._data[b].get(k, notfound) > > > --- > > > > try: > > > > v = self._data[b].get(k, notfound) > > > > except KeyError: > > > > LOG('Transience', WARNING, > > > > 'KeyError raised in get, checking _data BTree') > > > > try: > > > > check(self._data) > > > > LOG('Transience', WARNING,'BTree check succeeded') > > > > except: > > > > # BTree check failed > > > > oldstdout = sys.stdout > > > > tmp = StringIO() > > > > try: > > > > sys.stdout = tmp > > > > display(self._data) > > > > tmp.seek(0) > > > > LOG('Transience', WARNING,'BTree check failed', > > > > tmp.read(), error=sys.exc_info()) > > > > tmp.close() > > > > finally: > > > > sys.stdout = oldstdout > > > > raise > > > > > > -- > > > > John Eikenberry [EMAIL PROTECTED] > > ______________________________________________________________ > > "A society that will trade a little liberty for a little order > > will deserve neither and lose both." > > --B. Franklin > > > > _______________________________________________ > > 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 ) > > Index: Transience.py > =================================================================== > RCS file: /cvs-repository/Zope/lib/python/Products/Transience/Transience.py,v > retrieving revision 1.28.6.4 > diff -r1.28.6.4 Transience.py > 807c807,814 > < v = self._data[b].get(k, notfound) > --- > > try: > > v = self._data[b].get(k, notfound) > > except KeyError: > > LOG('Transience', WARNING, > > 'KeyError raised in get, checking BTrees') > > check_btree(self._data, 'data') > > check_btree(index, 'index') > > raise > 954a962,981 > > > > def check_btree(btree, name): > > from BTrees.check import check, display > > from cStringIO import StringIO > > try: > > check(btree) > > LOG('Transience', WARNING,'BTree check for %s succeeded' % name) > > except: > > # BTree check failed > > oldstdout = sys.stdout > > tmp = StringIO() > > try: > > sys.stdout = tmp > > display(btree) > > tmp.seek(0) > > LOG('Transience', WARNING, 'BTree check for %s failed' % name, > > tmp.read(), error=sys.exc_info()) > > tmp.close() > > finally: > > sys.stdout = oldstdout -- John Eikenberry [EMAIL PROTECTED] ______________________________________________________________ "A society that will trade a little liberty for a little order will deserve neither and lose both." --B. Franklin _______________________________________________ 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 )