[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