On Fri, Sep 10, 2010 at 2:27 AM, Chris Withers <ch...@simplistix.co.uk> wrote: > On 09/09/2010 21:47, Jim Fulton wrote: >>> >>> 2010-08-26 22:49:01 ERROR txn.-1338986496 Failed to abort resource >>> manager:<MultiObjectResourceAdapter for<ZODB.DB.TransactionalUndo >>> object at 0x2d509f0> at 47516176> >>> Traceback (most recent call last): >>> File "transaction-1.1.0-py2.6.egg/transaction/_transaction.py", line >>> 475, in abort >>> rm.abort(self) >>> File "transaction-1.1.0-py2.6.egg/transaction/_transaction.py", line >>> 548, in abort >>> self.manager.abort(o, txn) >>> File "ZODB3-3.9.5-py2.6-macosx-10.3-fat.egg/ZODB/DB.py", line 985, in >>> abort >>> raise NotImplementedError >>> NotImplementedError >>> >>> This used to give a meaningful error message. >> >> In 3.7 and earlier. >> >>> >>> Anyone know why it no longer does? >> >> The resource manager abort method used to be a pass. In 3.9 in raises >> an exception, which hides the undo exception. > > That's bad, right?
It's affect on zope users is, but arguably because Zope 2 is(/was?) misshandling the exception. It shouldn't let an exception raised while handling the original exception hide the original exception. (Of course, this is a common mistake. I've made it many times myself. :) >> An app should capture >> the undo exception information before calling abort. > > "the app" here is Zope 2's publisher process, right? I guess. :) > >> My guess is that this works much better in ZODB 3.10. > > Any particular reason? Because the undo handling was rewritten for 3.10. It was a mess for some time before. Jim -- Jim Fulton _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev