New submission from Marien Zwart <m_zw...@123mail.org>:

dbm.whichdb (python 3) and whichdb.whichdb (python 2) only check for "magic == 
0x13579ace" to recognize gdbm databases. The recently released gdbm 1.9 series 
adds 0x13579acd (for "32bit") and 0x13579acf (for "64bit") magics (see 
src/gdbmconst.h in the gdbm-1.9 or gdbm-1.9.1 source tree). Python's gdbm 
linked to gdbm 1.9 creates databases with the new magic, which causes the 
whichdb tests to fail. To reproduce this just build python against the new 
libgdbm and run test/test_dbm.py.

whichdb should probably just check for the two new magic numbers too. This will 
cause it to recognize the new gdbm databases even if python's gdbm extension is 
linked to an older version of gdbm that cannot open them, but that is probably 
less likely to cause problems than the current behavior, where a database 
created by python's gdbm is not recognized as such.

(I've left the "Versions" field untouched as I do not know which versions of 
python this should be backported to, but it affects all of them.)

----------
components: Library (Lib)
messages: 144277
nosy: marienz
priority: normal
severity: normal
status: open
title: gdbm 1.9 has new magic that whichdb does not recognize
type: behavior

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue13007>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to