New submission from Paul Colomiets <p...@gafol.net>: When maximum transaction number exceeded and DBEnv->txn_begin returns with error ENOMEM, error with following traceback occur:
#0 0x0000000803d4fa48 in DBTxn_dealloc (self=0x846480648) at _bsddb.c:1235 #1 0x0000000803d506dc in newDBTxnObject (myenv=0x804c23d98, parent=0x0, txn=Variable "txn" is not available. ) at _bsddb.c:1179 #2 0x0000000803d50770 in DBEnv_txn_begin (self=0x804c23d98, args=Variable "args" is not available. ) at _bsddb.c:4584 #3 0x0000000000523ea4 in PyCFunction_Call () [..snip..] I believe that following patch will fix that problem: Index: Modules/_bsddb.c =================================================================== --- Modules/_bsddb.c (revision 76338) +++ Modules/_bsddb.c (working copy) @@ -1232,7 +1232,7 @@ if (self->env) { Py_DECREF(self->env); } else { - Py_DECREF(self->parent_txn); + Py_XDECREF(self->parent_txn); } PyObject_Del(self); } Seems that normally either env or parent_txn attribute is not null but when transaction where not created it's untrue (look at the end of newDBTxnObject if you don't trust :) ) ---------- components: Library (Lib) messages: 95389 nosy: pc severity: normal status: open title: bsddb crashes when transaction limit occurs type: crash versions: Python 2.6 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue7339> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com