From: Gregory P. Smith Date: Thu, 8 Jun 2006 05:38:11 +0000 (+0000) Subject: * Turn the deadlock situation described in SF bug #775414 into a X-Git-Tag: v2.5b1~201 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dda291c079e6c8e074c99df1bfef52936d68fa1b;p=python * Turn the deadlock situation described in SF bug #775414 into a DBDeadLockError exception. * add the test case for my previous dbtables commit. --- diff --git a/Lib/bsddb/__init__.py b/Lib/bsddb/__init__.py index c004c08a87..d5ab000513 100644 --- a/Lib/bsddb/__init__.py +++ b/Lib/bsddb/__init__.py @@ -344,6 +344,7 @@ def _openDBEnv(cachesize): else: raise error, "cachesize must be >= 20480" e.open('.', db.DB_PRIVATE | db.DB_CREATE | db.DB_THREAD | db.DB_INIT_LOCK | db.DB_INIT_MPOOL) + e.set_lk_detect(db.DB_LOCK_DEFAULT) return e def _checkflag(flag, file): diff --git a/Lib/bsddb/test/test_dbtables.py b/Lib/bsddb/test/test_dbtables.py index 1128a5a44e..26e3d3650b 100644 --- a/Lib/bsddb/test/test_dbtables.py +++ b/Lib/bsddb/test/test_dbtables.py @@ -339,6 +339,16 @@ class TableDBTestCase(unittest.TestCase): conditions={'Name': dbtables.LikeCond('%')}, mappings={'Access': increment_access}) + try: + self.tdb.Modify(tabname, + conditions={'Name': dbtables.LikeCond('%')}, + mappings={'Access': 'What is your quest?'}) + except TypeError: + # success, the string value in mappings isn't callable + pass + else: + raise RuntimeError, "why was TypeError not raised for bad callable?" + # Delete key in select conditions values = self.tdb.Select( tabname, None,