classification
Title: IDLE: Quitting with a new, unsaved editor window causes an exception
Type: behavior Stage:
Components: IDLE Versions: Python 3.9, Python 3.8, Python 3.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: terry.reedy Nosy List: taleinat, terry.reedy
Priority: normal Keywords:

Created on 2019-07-10 19:12 by taleinat, last changed 2019-07-14 09:10 by taleinat.

Messages (4)
msg347636 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2019-07-10 19:12
Observed on macOS 10.14.5 with Python 3.8 from python.org, and with latest master branch.

Reproduction:
1. Open IDLE
2. "New File" (Cmd-Shift-n on macOS)
3. Quit using Cmd-q ("Quit Python" from the menu doesn't cause this!)

The exception traceback:
Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/__init__.py", line 1883, in __call__
    return self.func(*args)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/multicall.py", line 176, in handler
    r = l[i](event)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/filelist.py", line 54, in close_all_callback
    reply = edit.close()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/editor.py", line 1021, in close
    self._close()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/pyshell.py", line 312, in _close
    EditorWindow._close(self)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/editor.py", line 1025, in _close
    if self.io.filename:
AttributeError: 'NoneType' object has no attribute 'filename'
msg347748 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2019-07-12 15:34
I see the traceback I reported on #37524, whichever way I close.  In both cases, EditorWindow.close is called and we get an AttributeError because a file has become None. close() calls maybesave before _close, so the exception I see happens before _close is called.  It is possible I have seen this, before the #37524 errors started.  See latter for possible fix.
msg347885 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2019-07-14 08:24
Doesn't reproduce on Win10 with current master.
msg347898 - (view) Author: Tal Einat (taleinat) * (Python committer) Date: 2019-07-14 09:10
This also happens on Ubuntu 18.10, with a traceback similar to that reported on issue #37524:

Exception ignored in: <idlelib.run.PseudoInputFile object at 0x7f2d93b17410>
Traceback (most recent call last):
  File "Lib/idlelib/run.py", line 488, in close
  File "Lib/idlelib/pyshell.py", line 1017, in close
  File "Lib/idlelib/editor.py", line 1019, in close
  File "Lib/idlelib/outwin.py", line 94, in maybesave
  File "Lib/idlelib/editor.py", line 952, in get_saved
AttributeError: 'NoneType' object has no attribute 'get_saved'
History
Date User Action Args
2019-07-14 09:10:55taleinatsetmessages: + msg347898
2019-07-14 08:24:44taleinatsetmessages: + msg347885
2019-07-12 15:34:40terry.reedysetmessages: + msg347748
2019-07-10 19:12:06taleinatcreate