[ZODB-Dev] transaction egg refactoring breaks zodb trunk

Chris McDonough chrism at plope.com
Sun Nov 11 22:14:35 EST 2007


Christian fixed these failures, after I hosed things.

These were second-level failures.  The first level failure was that  
the tests couldn't be run at all.  The way Christian found the failure  
was that he had a buildbot which couldn't successfully run the tests  
because the buildbot didn't know enough to attempt to download and put  
the transaction module in the path during the tests.

Phillipp fixed this by adding an SVN external that points to the  
'transaction' top-level module within the ZODB SVN module and he  
changed the buildout.cfg to use this as a 'develop' directory.  This  
works but it's suboptimal for release, because we need to keep track  
of the fact that this directory shouldn't be shipped in an sdist (and  
thus add it as an exclude in setup.py).  It's currently not excluded,  
so if we were to make a release today, the release would include the  
'transaction' directory.

I've made it possible to run the tests now via "setup.py test" (I just  
wrap the testrunner) in a clean checkout by adding the appropriate  
"tests_require" declarations.  I'm not sure how to be able to remove  
the 'transaction' SVN external while still allowing the tests to pass  
via buildout's "bin/test" regime, however.

On Nov 10, 2007, at 6:11 AM, Christian Theune wrote:

> The ZODB trunk is broken after the transaction package was moved:
>
> Error in test checkFailingSavepointSticks
> (ZODB.tests.testZODB.ZODBTests)
> Traceback (most recent call last):
>  File "/home/ctheune/local/python2.4/lib/python2.4/unittest.py", line
> 260, in run
>    testMethod()
>  File "/home/ctheune/tmp/ZODB.trunk/src/ZODB/tests/testZODB.py", line
> 363, in checkFailingSavepointSticks
>    rt['a'] = 1
>  File "/home/ctheune/tmp/ZODB.trunk/src/persistent/mapping.py", line
> 53, in __setitem__
>    self._p_changed = 1
>  File "/home/ctheune/tmp/ZODB.trunk/src/ZODB/Connection.py", line 936,
> in register
>    self._register(obj)
>  File "/home/ctheune/tmp/ZODB.trunk/src/ZODB/Connection.py", line 946,
> in _register
>    self.transaction_manager.get().join(self)
>  File
> "/home/ctheune/tmp/ZODB.trunk/transaction/transaction/ 
> _transaction.py",
> line 213, in join
>    self._prior_operation_failed() # doesn't return
>  File
> "/home/ctheune/tmp/ZODB.trunk/transaction/transaction/ 
> _transaction.py",
> line 207, in _prior_operation_failed
>    raise TransactionFailedError("An operation previously failed, "
> TransactionFailedError: An operation previously failed, with  
> traceback:
>
>  File "bin/test", line 23, in ?
>    zope.testing.testrunner.run([
>  File
> "/home/ctheune/.eggs/tmprcnM-Q/zope.testing-3.5.1-py2.4.egg/zope/ 
> testing/testrunner.py", line 932, in run
>  File
> "/home/ctheune/.eggs/tmprcnM-Q/zope.testing-3.5.1-py2.4.egg/zope/ 
> testing/testrunner.py", line 1068, in run_with_options
>  File
> "/home/ctheune/.eggs/tmprcnM-Q/zope.testing-3.5.1-py2.4.egg/zope/ 
> testing/testrunner.py", line 1199, in run_tests
>  File "/home/ctheune/local/python2.4/lib/python2.4/unittest.py", line
> 281, in __call__
>    return self.run(*args, **kwds)
>  File "/home/ctheune/local/python2.4/lib/python2.4/unittest.py", line
> 260, in run
>    testMethod()
>  File "/home/ctheune/tmp/ZODB.trunk/src/ZODB/tests/testZODB.py", line
> 324, in checkFailingCommitSticks
>    self.assertRaises(PoisonedError, transaction.get().commit)
>  File "/home/ctheune/local/python2.4/lib/python2.4/unittest.py", line
> 320, in failUnlessRaises
>    callableObj(*args, **kwargs)
>  File
> "/home/ctheune/tmp/ZODB.trunk/transaction/transaction/ 
> _transaction.py",
> line 325, in commit
>    t, v, tb = self._saveAndGetCommitishError()
>  File
> "/home/ctheune/tmp/ZODB.trunk/transaction/transaction/ 
> _transaction.py",
> line 322, in commit
>    self._commitResources()
>  File
> "/home/ctheune/tmp/ZODB.trunk/transaction/transaction/ 
> _transaction.py",
> line 419, in _commitResources
>    rm.tpc_vote(self)
>  File
> "/home/ctheune/tmp/ZODB.trunk/transaction/transaction/ 
> _transaction.py",
> line 535, in tpc_vote
>    self.manager.tpc_vote(txn)
>  File "/home/ctheune/tmp/ZODB.trunk/src/ZODB/tests/testZODB.py", line
> 631, in tpc_vote
>    raise PoisonedError("tpc_vote fails")
> PoisonedError: tpc_vote fails
>
> -- 
> gocept gmbh & co. kg - forsterstrasse 29 - 06112 halle (saale) -  
> germany
> www.gocept.com - ct at gocept.com - phone +49 345 122 9889 7 -
> fax +49 345 122 9889 1 - zope and plone consulting and development
> _______________________________________________
> For more information about ZODB, see the ZODB Wiki:
> http://www.zope.org/Wikis/ZODB/
>
> ZODB-Dev mailing list  -  ZODB-Dev at zope.org
> http://mail.zope.org/mailman/listinfo/zodb-dev



More information about the ZODB-Dev mailing list