Skip to content

Commit 20d5494

Browse files
Revert "gh-66234: Add flag to disable the use of mmap in dbm.gnu (GH-135005)" (GH-136989)
This reverts commit 0cec424.
1 parent 69c6b43 commit 20d5494

File tree

5 files changed

+2
-43
lines changed

5 files changed

+2
-43
lines changed

Doc/library/dbm.rst

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,9 +275,6 @@ functionality like crash tolerance.
275275
* ``'s'``: Synchronized mode.
276276
Changes to the database will be written immediately to the file.
277277
* ``'u'``: Do not lock database.
278-
* ``'m'``: Do not use :manpage:`mmap(2)`.
279-
This may harm performance, but improve crash tolerance.
280-
.. versionadded:: next
281278

282279
Not all flags are valid for all versions of GDBM.
283280
See the :data:`open_flags` member for a list of supported flag characters.

Doc/whatsnew/3.15.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -315,10 +315,6 @@ dbm
315315
which allow to recover unused free space previously occupied by deleted entries.
316316
(Contributed by Andrea Oliveri in :gh:`134004`.)
317317

318-
* Add the ``'m'`` flag for :func:`dbm.gnu.open` which allows to disable
319-
the use of :manpage:`mmap(2)`.
320-
This may harm performance, but improve crash tolerance.
321-
(Contributed by Serhiy Storchaka in :gh:`66234`.)
322318

323319

324320
difflib

Lib/test/test_dbm_gnu.py

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ def test_flags(self):
7474
# Test the flag parameter open() by trying all supported flag modes.
7575
all = set(gdbm.open_flags)
7676
# Test standard flags (presumably "crwn").
77-
modes = all - set('fsum')
77+
modes = all - set('fsu')
7878
for mode in sorted(modes): # put "c" mode first
7979
self.g = gdbm.open(filename, mode)
8080
self.g.close()
8181

82-
# Test additional flags (presumably "fsum").
82+
# Test additional flags (presumably "fsu").
8383
flags = all - set('crwn')
8484
for mode in modes:
8585
for flag in flags:
@@ -217,29 +217,6 @@ def test_localized_error(self):
217217
create_empty_file(os.path.join(d, 'test'))
218218
self.assertRaises(gdbm.error, gdbm.open, filename, 'r')
219219

220-
@unittest.skipUnless('m' in gdbm.open_flags, "requires 'm' in open_flags")
221-
def test_nommap_no_crash(self):
222-
self.g = g = gdbm.open(filename, 'nm')
223-
os.truncate(filename, 0)
224-
225-
g.get(b'a', b'c')
226-
g.keys()
227-
g.firstkey()
228-
g.nextkey(b'a')
229-
with self.assertRaises(KeyError):
230-
g[b'a']
231-
with self.assertRaises(gdbm.error):
232-
len(g)
233-
234-
with self.assertRaises(gdbm.error):
235-
g[b'a'] = b'c'
236-
with self.assertRaises(gdbm.error):
237-
del g[b'a']
238-
with self.assertRaises(gdbm.error):
239-
g.setdefault(b'a', b'c')
240-
with self.assertRaises(gdbm.error):
241-
g.reorganize()
242-
243220

244221
if __name__ == '__main__':
245222
unittest.main()

Misc/NEWS.d/next/Library/2025-06-01-15-13-07.gh-issue-66234.Jw7OdC.rst

Lines changed: 0 additions & 3 deletions
This file was deleted.

Modules/_gdbmmodule.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -807,11 +807,6 @@ dbmopen_impl(PyObject *module, PyObject *filename, const char *flags,
807807
case 'u':
808808
iflags |= GDBM_NOLOCK;
809809
break;
810-
#endif
811-
#ifdef GDBM_NOMMAP
812-
case 'm':
813-
iflags |= GDBM_NOMMAP;
814-
break;
815810
#endif
816811
default:
817812
PyErr_Format(state->gdbm_error,
@@ -845,9 +840,6 @@ static const char gdbmmodule_open_flags[] = "rwcn"
845840
#endif
846841
#ifdef GDBM_NOLOCK
847842
"u"
848-
#endif
849-
#ifdef GDBM_NOMMAP
850-
"m"
851843
#endif
852844
;
853845

0 commit comments

Comments
 (0)