Revert "gh-66234: Add flag to disable the use of mmap in dbm.gnu (GH-135005)" (GH-136989)

This reverts commit 0cec424af5.
This commit is contained in:
Serhiy Storchaka
2025-09-20 11:01:44 +03:00
committed by GitHub
parent 69c6b438e8
commit 20d5494c88
5 changed files with 2 additions and 43 deletions

View File

@@ -275,9 +275,6 @@ functionality like crash tolerance.
* ``'s'``: Synchronized mode. * ``'s'``: Synchronized mode.
Changes to the database will be written immediately to the file. Changes to the database will be written immediately to the file.
* ``'u'``: Do not lock database. * ``'u'``: Do not lock database.
* ``'m'``: Do not use :manpage:`mmap(2)`.
This may harm performance, but improve crash tolerance.
.. versionadded:: next
Not all flags are valid for all versions of GDBM. Not all flags are valid for all versions of GDBM.
See the :data:`open_flags` member for a list of supported flag characters. See the :data:`open_flags` member for a list of supported flag characters.

View File

@@ -315,10 +315,6 @@ dbm
which allow to recover unused free space previously occupied by deleted entries. which allow to recover unused free space previously occupied by deleted entries.
(Contributed by Andrea Oliveri in :gh:`134004`.) (Contributed by Andrea Oliveri in :gh:`134004`.)
* Add the ``'m'`` flag for :func:`dbm.gnu.open` which allows to disable
the use of :manpage:`mmap(2)`.
This may harm performance, but improve crash tolerance.
(Contributed by Serhiy Storchaka in :gh:`66234`.)
difflib difflib

View File

@@ -74,12 +74,12 @@ class TestGdbm(unittest.TestCase):
# Test the flag parameter open() by trying all supported flag modes. # Test the flag parameter open() by trying all supported flag modes.
all = set(gdbm.open_flags) all = set(gdbm.open_flags)
# Test standard flags (presumably "crwn"). # Test standard flags (presumably "crwn").
modes = all - set('fsum') modes = all - set('fsu')
for mode in sorted(modes): # put "c" mode first for mode in sorted(modes): # put "c" mode first
self.g = gdbm.open(filename, mode) self.g = gdbm.open(filename, mode)
self.g.close() self.g.close()
# Test additional flags (presumably "fsum"). # Test additional flags (presumably "fsu").
flags = all - set('crwn') flags = all - set('crwn')
for mode in modes: for mode in modes:
for flag in flags: for flag in flags:
@@ -217,29 +217,6 @@ class TestGdbm(unittest.TestCase):
create_empty_file(os.path.join(d, 'test')) create_empty_file(os.path.join(d, 'test'))
self.assertRaises(gdbm.error, gdbm.open, filename, 'r') self.assertRaises(gdbm.error, gdbm.open, filename, 'r')
@unittest.skipUnless('m' in gdbm.open_flags, "requires 'm' in open_flags")
def test_nommap_no_crash(self):
self.g = g = gdbm.open(filename, 'nm')
os.truncate(filename, 0)
g.get(b'a', b'c')
g.keys()
g.firstkey()
g.nextkey(b'a')
with self.assertRaises(KeyError):
g[b'a']
with self.assertRaises(gdbm.error):
len(g)
with self.assertRaises(gdbm.error):
g[b'a'] = b'c'
with self.assertRaises(gdbm.error):
del g[b'a']
with self.assertRaises(gdbm.error):
g.setdefault(b'a', b'c')
with self.assertRaises(gdbm.error):
g.reorganize()
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()

View File

@@ -1,3 +0,0 @@
Add the ``'m'`` flag for :func:`dbm.gnu.open` which allows to disable the
use of :manpage:`mmap(2)`. This may harm performance, but improve crash
tolerance.

View File

@@ -807,11 +807,6 @@ dbmopen_impl(PyObject *module, PyObject *filename, const char *flags,
case 'u': case 'u':
iflags |= GDBM_NOLOCK; iflags |= GDBM_NOLOCK;
break; break;
#endif
#ifdef GDBM_NOMMAP
case 'm':
iflags |= GDBM_NOMMAP;
break;
#endif #endif
default: default:
PyErr_Format(state->gdbm_error, PyErr_Format(state->gdbm_error,
@@ -845,9 +840,6 @@ static const char gdbmmodule_open_flags[] = "rwcn"
#endif #endif
#ifdef GDBM_NOLOCK #ifdef GDBM_NOLOCK
"u" "u"
#endif
#ifdef GDBM_NOMMAP
"m"
#endif #endif
; ;