[New-bugs-announce] [issue7339] bsddb crashes when transaction limit occurs
Paul Colomiets
report at bugs.python.org
Tue Nov 17 17:39:11 CET 2009
New submission from Paul Colomiets <pc at 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 <report at bugs.python.org>
<http://bugs.python.org/issue7339>
_______________________________________
More information about the New-bugs-announce
mailing list