classification
Title: Support Berkeley DB 4.8
Type: enhancement Stage: patch review
Components: Build Versions: Python 3.2, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: jcea Nosy List: Arfrever, doko, jcea
Priority: normal Keywords: patch

Created on 2009-09-19 16:09 by Arfrever, last changed 2010-03-16 06:47 by doko. This issue is now closed.

Files
File name Uploaded Description Edit
python-support_bdb-4.8.patch Arfrever, 2009-09-19 16:09 Support Berkeley DB 4.8
python-support_bdb-4.8-v2.patch doko, 2010-03-14 22:27 Support Berkeley DB 4.8 v2
Messages (7)
msg92871 - (view) Author: Arfrever Frehtes Taifersar Arahesis (Arfrever) * Date: 2009-09-19 16:09
Python doesn't detect Berkeley DB 4.8. After updating setup.py, _bsddb
module fails to build due to some changes in Berkeley DB.

I'm attaching patch which seems to fix these problems.
Changes in setup.py were made by me.
Changes in Modules/_bsddb.c were copied from bsddb3-4.8.0 [1].

[1] http://www.jcea.es/programacion/pybsddb.htm
msg101068 - (view) Author: Matthias Klose (doko) * (Python committer) Date: 2010-03-14 22:27
with this patch the following test cases fail. the tests need backports as well. with this patch there's still one test failure, which I do see with db4.7 as well.

will wait for test results on different platforms and then submit to the trunk. the setup.py change should go to the py3k branch as well.

======================================================================
ERROR: test02_DBEnv_dealloc (bsddb.test.test_basics.CrashAndBurn)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_basics.py", line 1038, in test02_DBEnv_dealloc
    self.assertRaises(db.DBInvalidArgError, db.DBEnv, ~db.DB_RPCCLIENT)
AttributeError: 'module' object has no attribute 'DB_RPCCLIENT'

======================================================================
ERROR: test01_distributed_transactions (bsddb.test.test_distributed_transactions.DBTxn_distributed)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_distributed_transactions.py", line 53, in setUp
    return self._create_env(must_open_db=True)
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_distributed_transactions.py", line 38, in _create_env
    self.db.set_re_len(db.DB_XIDDATASIZE)
AttributeError: 'module' object has no attribute 'DB_XIDDATASIZE'

======================================================================
ERROR: test01_distributed_transactions (bsddb.test.test_distributed_transactions.DBTxn_distributedSYNC)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_distributed_transactions.py", line 53, in setUp
    return self._create_env(must_open_db=True)
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_distributed_transactions.py", line 38, in _create_env
    self.db.set_re_len(db.DB_XIDDATASIZE)
AttributeError: 'module' object has no attribute 'DB_XIDDATASIZE'
======================================================================
ERROR: test01_distributed_transactions (bsddb.test.test_distributed_transactions.DBTxn_distributed_must_open_db)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_distributed_transactions.py", line 53, in setUp
    return self._create_env(must_open_db=True)
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_distributed_transactions.py", line 38, in _create_env
    self.db.set_re_len(db.DB_XIDDATASIZE)
AttributeError: 'module' object has no attribute 'DB_XIDDATASIZE'

======================================================================
ERROR: test01_distributed_transactions (bsddb.test.test_distributed_transactions.DBTxn_distributedSYNC_must_open_db)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_distributed_transactions.py", line 53, in setUp
    return self._create_env(must_open_db=True)
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_distributed_transactions.py", line 38, in _create_env
    self.db.set_re_len(db.DB_XIDDATASIZE)
AttributeError: 'module' object has no attribute 'DB_XIDDATASIZE'
msg101069 - (view) Author: Matthias Klose (doko) * (Python committer) Date: 2010-03-14 22:29
the remaining test failure is

test_bsddb3
Berkeley DB 4.8.24: (August 14, 2009)
Test path prefix:  /tmp/z-test_bsddb3-25705
Exception in thread reader 0:
Traceback (most recent call last):
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/threading.py", line 532, in __bootstrap_inner
    self.run()
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/threading.py", line 484, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/test/test_thread.py", line 306, in readerThread
    rec = dbutils.DeadlockWrap(c.next, max_retries=10)
  File "/home/packages/python/2.6/python2.6-2.6.5~rc2/Lib/bsddb/dbutils.py", line 68, in DeadlockWrap
    return function(*_args, **_kwargs)
DBLockDeadlockError: (-30994, 'DB_LOCK_DEADLOCK: Locker killed to resolve a deadlock')
msg101099 - (view) Author: Matthias Klose (doko) * (Python committer) Date: 2010-03-15 12:52
checked in after testing on {arm,i486,x86_64,powerpc,sparc,ia64}-linux with no test failures.

fixed in r78974 on the trunk
fixed in r78975 on the py3k branch
msg101150 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-03-16 03:19
I am about to integrate pybsddb 4.8.4, that compiles against BDB 4.8.

Oracle is going to publish a new Berkeley DB lib in a month or less. I have the pybsddb release ready, too.
msg101151 - (view) Author: Jesús Cea Avión (jcea) * (Python committer) Date: 2010-03-16 03:24
Doko, bsddb3 is suppose to be "out" of py3k.
msg101155 - (view) Author: Matthias Klose (doko) * (Python committer) Date: 2010-03-16 06:47
jcea: yes, but we want _dbm be able to build with 4.8.x as well.
History
Date User Action Args
2010-03-16 06:47:06dokosetmessages: + msg101155
2010-03-16 03:24:06jceasetmessages: + msg101151
2010-03-16 03:19:50jceasetmessages: + msg101150
2010-03-15 12:52:14dokosetstatus: open -> closed
resolution: fixed
messages: + msg101099
2010-03-14 22:29:38dokosetmessages: + msg101069
2010-03-14 22:27:17dokosetfiles: + python-support_bdb-4.8-v2.patch
versions: + Python 3.2, - Python 2.6
nosy: + doko

messages: + msg101068
2009-09-19 16:16:45r.david.murraysetnosy: + jcea
priority: normal
assignee: jcea
type: enhancement
stage: patch review
2009-09-19 16:09:30Arfrevercreate