[New-bugs-announce] [issue39202] Python shelve __del__ ignored exception

Ilya report at bugs.python.org
Fri Jan 3 11:19:53 EST 2020


New submission from Ilya <libbkmz.dev at gmail.com>:

I'm using my own implementation of the memoize by shelve module. In the attachment, there are 2 simple test cases which pass but the console there are a lot of messages like that:

Exception ignored in: <function Shelf.__del__ at 0x0000023202F363A0>
Traceback (most recent call last):
  File "C:\Miniconda2\envs\38_common\lib\shelve.py", line 162, in __del__
    self.close()
  File "C:\Miniconda2\envs\38_common\lib\shelve.py", line 144, in close
    self.sync()
  File "C:\Miniconda2\envs\38_common\lib\shelve.py", line 172, in sync
    self.dict.sync()
  File "C:\Miniconda2\envs\38_common\lib\dbm\dumb.py", line 129, in _commit
    with self._io.open(self._dirfile, 'w', encoding="Latin-1") as f:
PermissionError: [Errno 13] Permission denied: 'C:\\project\\tests\\test_memoize_tmp_t5tai08p\\memoize_test_file.dat.dir'

Exception ignored in: <function _Database.close at 0x0000023202EF9040>
Traceback (most recent call last):
  File "C:\Miniconda2\envs\38_common\lib\dbm\dumb.py", line 274, in close
    self._commit()
  File "C:\Miniconda2\envs\38_common\lib\dbm\dumb.py", line 129, in _commit
    with self._io.open(self._dirfile, 'w', encoding="Latin-1") as f:
PermissionError: [Errno 13] Permission denied: 'C:\\project\\tests\\test_memoize_tmp_t5tai08p\\memoize_test_file.dat.dir'


Basically, the main issue can be explained like that - Python dbm.dumb._Database should maintain self._modified the attribute in the right way(set it to False) after the _commit method. 

Later I will try to make changes in the dbm.dumb module and run Python internal tests for that modification to see any regression, if not will add PR here.

----------
components: Library (Lib)
files: test_python_shelve_issue.py
messages: 359242
nosy: libbkmz
priority: normal
severity: normal
status: open
title: Python shelve __del__ ignored exception
type: enhancement
versions: Python 3.8
Added file: https://bugs.python.org/file48826/test_python_shelve_issue.py

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue39202>
_______________________________________


More information about the New-bugs-announce mailing list