Bjorn Stabell wrote at 2003-6-3 11:08 +0800: > Except for SARS, another problem that's been plagueing us for months are > seemingly random Conflict Errors. We see about 10 every day on our Zope > 2.6.1, and they can happen on any page. In most cases they are not > related to pages that actually updated anything (AFAIK), although we do > use SESSIONS (but no frames). Any clue how to track down which objects > are having problems, what's causing this? > > ------ > 2003-06-03T09:08:10 INFO(0) ZODB conflict error at > /VirtualHostBase/http/www.beijingsammies.com:80/sammies/VirtualHostRoot/ > (7 conflicts since startup at 2003-06-02T13:15:05)
The log message for conflict errors is far less instructive than it could be (almost without any effort). It should indicate whether it is a ReadConflictError or a (Write)ConflictError. It should tell which object caused the conflict. The attached patch to "Zope/App/startup.py" provides this additional information. Please file a feature request to "<http://collector.zope.org/Zope>". Dieter
--- startup.py~ 2003-02-28 16:59:25.000000000 +0100 +++ startup.py 2003-03-17 11:13:28.000000000 +0100 @@ -140,9 +140,9 @@ global conflict_errors conflict_errors = conflict_errors + 1 method_name = REQUEST.get('PATH_INFO', '') - err = ('ZODB conflict error at %s ' + err = ('ZODB conflict error at %s: %s' '(%s conflicts since startup at %s)') - LOG(err % (method_name, conflict_errors, startup_time), + LOG(err % (method_name, str(v), conflict_errors, startup_time), INFO, '') LOG('Conflict traceback', BLATHER, '', error=sys.exc_info()) raise ZPublisher.Retry(t, v, traceback)