https://github.com/python/cpython/commit/20d5494c88985beb925b557ec29937b05e54779c
commit: 20d5494c88985beb925b557ec29937b05e54779c
branch: main
author: Serhiy Storchaka <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2025-09-20T11:01:44+03:00
summary:
Revert "gh-66234: Add flag to disable the use of mmap in dbm.gnu (GH-135005)"
(GH-136989)
This reverts commit 0cec424af5904b3d23ad6e3c6d1a27f89d238d64.
files:
D Misc/NEWS.d/next/Library/2025-06-01-15-13-07.gh-issue-66234.Jw7OdC.rst
M Doc/library/dbm.rst
M Doc/whatsnew/3.15.rst
M Lib/test/test_dbm_gnu.py
M Modules/_gdbmmodule.c
diff --git a/Doc/library/dbm.rst b/Doc/library/dbm.rst
index 140ca5c1e3405a..7b7ac2df126b7d 100644
--- a/Doc/library/dbm.rst
+++ b/Doc/library/dbm.rst
@@ -275,9 +275,6 @@ functionality like crash tolerance.
* ``'s'``: Synchronized mode.
Changes to the database will be written immediately to the file.
* ``'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.
See the :data:`open_flags` member for a list of supported flag
characters.
diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst
index 424e23ab354245..295dc201ec0ae4 100644
--- a/Doc/whatsnew/3.15.rst
+++ b/Doc/whatsnew/3.15.rst
@@ -315,10 +315,6 @@ dbm
which allow to recover unused free space previously occupied by deleted
entries.
(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
diff --git a/Lib/test/test_dbm_gnu.py b/Lib/test/test_dbm_gnu.py
index e0b988b7b95bbd..66268c42a300b5 100644
--- a/Lib/test/test_dbm_gnu.py
+++ b/Lib/test/test_dbm_gnu.py
@@ -74,12 +74,12 @@ def test_flags(self):
# Test the flag parameter open() by trying all supported flag modes.
all = set(gdbm.open_flags)
# Test standard flags (presumably "crwn").
- modes = all - set('fsum')
+ modes = all - set('fsu')
for mode in sorted(modes): # put "c" mode first
self.g = gdbm.open(filename, mode)
self.g.close()
- # Test additional flags (presumably "fsum").
+ # Test additional flags (presumably "fsu").
flags = all - set('crwn')
for mode in modes:
for flag in flags:
@@ -217,29 +217,6 @@ def test_localized_error(self):
create_empty_file(os.path.join(d, 'test'))
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__':
unittest.main()
diff --git
a/Misc/NEWS.d/next/Library/2025-06-01-15-13-07.gh-issue-66234.Jw7OdC.rst
b/Misc/NEWS.d/next/Library/2025-06-01-15-13-07.gh-issue-66234.Jw7OdC.rst
deleted file mode 100644
index 1defb9a72e04e7..00000000000000
--- a/Misc/NEWS.d/next/Library/2025-06-01-15-13-07.gh-issue-66234.Jw7OdC.rst
+++ /dev/null
@@ -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.
diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c
index 7bef6ae7f0c43e..a4bc0a0f675530 100644
--- a/Modules/_gdbmmodule.c
+++ b/Modules/_gdbmmodule.c
@@ -807,11 +807,6 @@ dbmopen_impl(PyObject *module, PyObject *filename, const
char *flags,
case 'u':
iflags |= GDBM_NOLOCK;
break;
-#endif
-#ifdef GDBM_NOMMAP
- case 'm':
- iflags |= GDBM_NOMMAP;
- break;
#endif
default:
PyErr_Format(state->gdbm_error,
@@ -845,9 +840,6 @@ static const char gdbmmodule_open_flags[] = "rwcn"
#endif
#ifdef GDBM_NOLOCK
"u"
-#endif
-#ifdef GDBM_NOMMAP
- "m"
#endif
;
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]