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:
@@ -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.
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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.
|
|
||||||
@@ -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
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user