Re: [Zope] Re: session variables in the presence of conflicts
Sorry, I noticed in another email you said that you're using 2.0.9 (which appears to be in beta) and I confirmed that the traceback matches that source. The note in the product's CHANGES.txt about this is: Wrap queries with a lock to prevent multiple threads from using the connection simultaneously (this may or may not be happening). If transactional, then there is an additional transaction lock, acquired at the beginning of the transaction and released when either finished or aborted. The last sentence is the meaningful one in your case. I'm not sure if this is a bug fix but you may want to try 2.0.8 if you haven't already because it doesn't use a transaction lock (or any other lock). It seems as if the logic in 2.0.9b to obtain the transaction lock fails to take some corner case into account, although it's not obvious from the code what that is. On Nov 20, 2005, at 1:55 PM, Chris McDonough wrote: Hi Dennis, I notice that line 389 of db.py of the most recent ZMySQLDA (2.0.8) doesn't match the traceback you show. No mutex locking at all is done in the 2.0.8 version of that module (or any other module in that product). Are you using an older version? - C On Nov 20, 2005, at 9:57 AM, Dennis Allison wrote: Florent, There were, of course, tracebacks. Any assist you can provide would be appreciated. -D -- 2005-11-18T12:50:16 ERROR txn.3075 Error in tpc_abort() on manager at 0x450431cc> at 1190763820> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 462, in _cleanup rm.tpc_abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 548, in tpc_abort self.manager.tpc_abort(txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Error in tpc_abort() on manager at 0x41487acc> at 1190774252> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 462, in _cleanup rm.tpc_abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 548, in tpc_abort self.manager.tpc_abort(txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 INFO ZODB conflict error at /courses/topics/ navigation_box (55 conflicts since startup at 2005-11-18T12:13:38) -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort object: Surrogate oid= Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: instance at 0x450431cc> at 1190763820> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 489, in abort rm.abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort object: Surrogate oid= Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: instance at 0x41487acc> at 1190774252> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 489, in abort rm.abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zp
Re: [Zope] Re: session variables in the presence of conflicts
Hi Dennis, I notice that line 389 of db.py of the most recent ZMySQLDA (2.0.8) doesn't match the traceback you show. No mutex locking at all is done in the 2.0.8 version of that module (or any other module in that product). Are you using an older version? - C On Nov 20, 2005, at 9:57 AM, Dennis Allison wrote: Florent, There were, of course, tracebacks. Any assist you can provide would be appreciated. -D -- 2005-11-18T12:50:16 ERROR txn.3075 Error in tpc_abort() on manager at 0x450431cc> at 1190763820> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 462, in _cleanup rm.tpc_abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 548, in tpc_abort self.manager.tpc_abort(txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Error in tpc_abort() on manager at 0x41487acc> at 1190774252> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 462, in _cleanup rm.tpc_abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 548, in tpc_abort self.manager.tpc_abort(txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 INFO ZODB conflict error at /courses/topics/ navigation_box (55 conflicts since startup at 2005-11-18T12:13:38) -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort object: Surrogate oid= Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: instance at 0x450431cc> at 1190763820> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 489, in abort rm.abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort object: Surrogate oid= Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: instance at 0x41487acc> at 1190774252> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 489, in abort rm.abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/ _transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/ TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- On Sat, 19 Nov 2005, Florent Guillaume wrote: Dennis Allison wrote: We are using MySQL but are fully transactional using innodb. The sort of problems we are seeing are (cruft removed) are things like: 2005-11-18T12:50:16 ERROR txn.3075 Error in tpc_abort() on manager at 1190763820> There should be a traceback here, or if there's none you should patch _transaction.py to make it produced. Seeing that traceback is important and would point to an error somewhere in MySQLDA's code I expect. 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: at 1190763820> 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort object: Surrogate oid= 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: at 1190774252> Same here, the traceback is important. Florent -- _
Re: [Zope] Re: session variables in the presence of conflicts
That was my conclusion long ago, but I have not been able to track it down. It only occurs under heavy load when backing out of a conflict error. I have not been successful at creating a test set that triggers it. I suppose it is time to again read the ZMySQLDA code... There are a few comments on the net about problems with MySQLDA which may also be related. On Sun, 20 Nov 2005, Florent Guillaume wrote: > Dennis Allison wrote: > > Florent, > > There were, of course, tracebacks. Any assist you can provide would be > > appreciated. -D > > > > -- > > 2005-11-18T12:50:16 ERROR txn.3075 Error in tpc_abort() on manager > > > 0x450431cc> at 1190763820> > > Traceback (most recent call last): > > File > > "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line > > 462, in _cleanup > > rm.tpc_abort(self) > > File > > "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line > > 548, in tpc_abort > > self.manager.tpc_abort(txn) > > File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/TM.py", line > > 64, in abort > > try: self._abort() > > File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort > > self._tlock.release() > > error: release unlocked lock > > Well undoubtedly the bug is in ZMySQLDA... > > Florent > > > -- ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
Re: [Zope] Re: session variables in the presence of conflicts
Florent, There were, of course, tracebacks. Any assist you can provide would be appreciated. -D -- 2005-11-18T12:50:16 ERROR txn.3075 Error in tpc_abort() on manager at 1190763820> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 462, in _cleanup rm.tpc_abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 548, in tpc_abort self.manager.tpc_abort(txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Error in tpc_abort() on manager at 1190774252> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 462, in _cleanup rm.tpc_abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 548, in tpc_abort self.manager.tpc_abort(txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 INFO ZODB conflict error at /courses/topics/navigation_box (55 conflicts since startup at 2005-11-18T12:13:38) -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort object: Surrogate oid= Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: at 1190763820> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 489, in abort rm.abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort object: Surrogate oid= Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: at 1190774252> Traceback (most recent call last): File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 489, in abort rm.abort(self) File "/usr/local/src/zope/Zope2.8/lib/python/transaction/_transaction.py", line 562, in abort self.manager.abort(o, txn) File "/usr/local/src/zope/Zope2.8/lib/python/Shared/DC/ZRDB/TM.py", line 64, in abort try: self._abort() File "/opt/zope/zproducts/standard/ZMySQLDA/db.py", line 389, in _abort self._tlock.release() error: release unlocked lock -- On Sat, 19 Nov 2005, Florent Guillaume wrote: > Dennis Allison wrote: > > We are using MySQL but are fully transactional using innodb. > > > > The sort of problems we are seeing are (cruft removed) are things like: > > > > 2005-11-18T12:50:16 ERROR txn.3075 Error in tpc_abort() on manager > > > 0x450431cc> at 1190763820> > > There should be a traceback here, or if there's none you should patch > _transaction.py to make it produced. Seeing that traceback is important > and would point to an error somewhere in MySQLDA's code I expect. > > > 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: > > > 0x450431cc> at 1190763820> > > 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort object: Surrogate > > oid= > > 2005-11-18T12:50:16 ERROR txn.3075 Failed to abort resource manager: > > > 0x41487acc> at 1190774252> > > Same here, the traceback is important. > > Florent > > -- ___ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )