New submission from STINNER Victor:

Attached destructortest.py script comes the issue #22480. It calls 
traceback.print_exception() at exit. The problem is that the call occurs late 
during Python finalization. The object was stored in the namespace of the main 
module. Currently, Python deletes builtin functions and then deletes modules 
(in a random order?).

Since the traceback module is used to display errors, it's annoying to get 
errors in the traceback module :-) I see two options to fix the specific issue 
of destructortest.py:

* Ignore exceptions while calling linecache
* Detect Python finalization and don't try to use the linecache module in this 
case

Attached patch implements the second option. I'm not sure that it's the best 
one. It includes an unit test.

Depending on the option, we can fix the issue only in Python 3.5, or fix Python 
2.7, 3.4 and 3.5.

Current output:
---
Traceback (most recent call last):
Exception ignored in: <bound method PrintExceptionAtExit.__del__ of 
<__main__.PrintExceptionAtExit object at 0x7f70b84ac878>>
Traceback (most recent call last):
  File "destructortest.py", line 15, in __del__
  File "/home/haypo/prog/python/default/Lib/traceback.py", line 169, in 
print_exception
  File "/home/haypo/prog/python/default/Lib/traceback.py", line 153, in 
_format_exception_iter
  File "/home/haypo/prog/python/default/Lib/traceback.py", line 18, in 
_format_list_iter
  File "/home/haypo/prog/python/default/Lib/traceback.py", line 65, in 
_extract_tb_or_stack_iter
  File "/home/haypo/prog/python/default/Lib/linecache.py", line 15, in getline
  File "/home/haypo/prog/python/default/Lib/linecache.py", line 41, in getlines
  File "/home/haypo/prog/python/default/Lib/linecache.py", line 126, in 
updatecache
  File "/home/haypo/prog/python/default/Lib/tokenize.py", line 438, in open
AttributeError: module 'builtins' has no attribute 'open'
---

Expected output:
---
Traceback (most recent call last):
  File "destructortest.py", line 7, in __init__
ZeroDivisionError: division by zero
---

----------
components: Library (Lib)
files: destructortest.py
messages: 228986
nosy: haypo
priority: normal
severity: normal
status: open
title: traceback: errors in the linecache module at exit
versions: Python 3.5
Added file: http://bugs.python.org/file36863/destructortest.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue22599>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to