diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2006-01-25 05:21:55 (GMT) |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2006-01-25 05:21:55 (GMT) |
commit | 62a21121b4acf9b37ea62e64498a869048fefb5b (patch) | |
tree | 282bdbc5fc5c4f9edc9f94a0c0288dd3764aa7a0 /Lib | |
parent | 2a4712dc80bcc873bea2238fcc855c9b92b82095 (diff) | |
download | cpython-62a21121b4acf9b37ea62e64498a869048fefb5b.zip cpython-62a21121b4acf9b37ea62e64498a869048fefb5b.tar.gz cpython-62a21121b4acf9b37ea62e64498a869048fefb5b.tar.bz2 |
Fix bug #1413192, fix seg fault in bsddb if a txn was deleted before the env.
Will backport.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/bsddb/test/test_1413192.py | 16 | ||||
-rw-r--r-- | Lib/bsddb/test/test_all.py | 6 | ||||
-rw-r--r-- | Lib/test/test_bsddb3.py | 6 |
3 files changed, 28 insertions, 0 deletions
diff --git a/Lib/bsddb/test/test_1413192.py b/Lib/bsddb/test/test_1413192.py new file mode 100644 index 0000000..45afb36 --- /dev/null +++ b/Lib/bsddb/test/test_1413192.py @@ -0,0 +1,16 @@ + +# http://python.org/sf/1413192 +# +# This test relies on the variable names, see the bug report for details. +# The problem was that the env was deallocated prior to the txn. + +from bsddb import db + +env_name = '.' + +env = db.DBEnv() +env.open(env_name, db.DB_CREATE | db.DB_INIT_TXN) +the_txn = env.txn_begin() + +map = db.DB(env) +map.open('xxx.db', "p", db.DB_HASH, db.DB_CREATE, 0666, txn=the_txn) diff --git a/Lib/bsddb/test/test_all.py b/Lib/bsddb/test/test_all.py index 701bdfe..972cd06 100644 --- a/Lib/bsddb/test/test_all.py +++ b/Lib/bsddb/test/test_all.py @@ -46,6 +46,12 @@ test_all.verbose = verbose def suite(): + try: + # this is special, it used to segfault the interpreter + import test_1413192 + except: + pass + test_modules = [ 'test_associate', 'test_basics', diff --git a/Lib/test/test_bsddb3.py b/Lib/test/test_bsddb3.py index cd6ccc6..34555ff 100644 --- a/Lib/test/test_bsddb3.py +++ b/Lib/test/test_bsddb3.py @@ -22,6 +22,12 @@ if 'silent' in sys.argv: # take care of old flag, just in case def suite(): + try: + # this is special, it used to segfault the interpreter + import bsddb.test.test_1413192 + except: + pass + test_modules = [ 'test_associate', 'test_basics', |