[Zope-dev] Debugging conflict errors? Hints please!

Jeremy Hylton jeremy@zope.com
Fri, 11 Oct 2002 11:15:39 -0400


>>>>> "SHH" == Stefan H Holek <stefan@epy.co.at> writes:

  SHH> Hi All!  I am experiencing a lot of 'ZODB conflict error at
  SHH> ...' that I can reliably reproduce by hitting my browser's
  SHH> Refresh button at a high rate. The bad news is that the
  SHH> conflicts happen on pages that are not supposed to change
  SHH> anything in the ZODB but only display results of some SQL
  SHH> queries. My question is now how to find out what actually is
  SHH> causing the conflicts. The log entry refers to the page being
  SHH> served ('/very/long/path/detail_view').

The debug log should show the oid that caused the conflict error.
>From the oid, you ought to be able to figure out what the object is --
class, etc. -- and then what transactions have modified that object.

Can anyone recommend a simple strategy for either of these two steps?
There's got to be a good way to do it, but I'm not sure what the best
way is.  I'd open the database in an interactive prompt:

>>> db.open()[oid]

That would get me the object.  Then I'd use fsdump to find all the
transactions that include that oid.  That would be a very manual
process since I'd just grep the textual dump of the storage.

Jeremy