Issue23631
This issue tracker has been migrated to GitHub,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2015-03-10 21:25 by terry.reedy, last changed 2022-04-11 14:58 by admin. This issue is now closed.
Files | ||||
---|---|---|---|---|
File name | Uploaded | Description | Edit | |
issue-23631-1.patch | rbcollins, 2015-03-16 01:59 | review |
Messages (8) | |||
---|---|---|---|
msg237810 - (view) | Author: Terry J. Reedy (terry.reedy) * | Date: 2015-03-10 21:25 | |
3.5.0a2, my Win 7 and Guido's new Win laptop: error tracebacks are mangled in a way that makes Idle severely less functional, hence 'release blocker'. First, the normal behavior. Python 3.5.0a2 (v3.5.0a2:0337bd7ebcb6+, Mar 9 2015, 10:29:45) [MSC v.1900 64 bi t (AMD64)] on win32 >>> 1/0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero Idle 3.4.3 and previous give same, with the helpful addition of the code line ('1/0'), as in batch mode tracebacks, since it uses the traceback module. But Idle 3.5.0a2 started from the installed icon gives >>> 1/0 Traceback (most recent call last): Traceback (most recent call last): Traceback (most recent call last): File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 353, in runcode exec(code, self.locals) File "<pyshell#1>", line 1, in <module> ZeroDivisionError: division by zero During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 126, in main ret = method(*args, **kwargs) File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 365, in runcode print_exception() File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 216, in print_exception print_exc(typ, val, tb) File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 211, in print_exc traceback.print_list(tbe, file=efile) File "C:\Program Files\Python 3.5\lib\traceback.py", line 22, in print_list for item in StackSummary.from_list(extracted_list).format(): File "C:\Program Files\Python 3.5\lib\traceback.py", line 370, in format frame.filename, frame.lineno, frame.name)) AttributeError: 'tuple' object has no attribute 'filename' >>> ================================ RESTART ================================ >>> run.py (as should be more or less everything in idlelib) is identical in 3.4 and 3.5. Idle started from a command line (py -3 -m idlelib) gives an even worse result. The Idle Shell just shows >>> 1/0 Traceback (most recent call last): Traceback (most recent call last): >>> ================================ RESTART ================================ >>> while the following appears in the command window (Command Prompt or PowerShell). Traceback (most recent call last): File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 353, in runcode exec(code, self.locals) File "<pyshell#0>", line 1, in <module> ZeroDivisionError: division by zero During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 126, in main ret = method(*args, **kwargs) File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 365, in runcode print_exception() File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 216, in print_exception print_exc(typ, val, tb) File "C:\Program Files\Python 3.5\lib\idlelib\run.py", line 211, in print_exc traceback.print_list(tbe, file=efile) File "C:\Program Files\Python 3.5\lib\traceback.py", line 22, in print_list for item in StackSummary.from_list(extracted_list).format(): File "C:\Program Files\Python 3.5\lib\traceback.py", line 370, in format frame.filename, frame.lineno, frame.name)) AttributeError: 'tuple' object has no attribute 'filename' Exception in Tkinter callback Traceback (most recent call last): File "C:\Program Files\Python 3.5\lib\idlelib\rpc.py", line 359, in pollpacket s = self.sock.recv(BUFSIZE) ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the r During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files\Python 3.5\lib\idlelib\rpc.py", line 432, in pollresponse message = self.pollmessage(wait) File "C:\Program Files\Python 3.5\lib\idlelib\rpc.py", line 384, in pollmessage packet = self.pollpacket(wait) File "C:\Program Files\Python 3.5\lib\idlelib\rpc.py", line 361, in pollpacket raise EOFError EOFError During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files\Python 3.5\lib\idlelib\PyShell.py", line 565, in poll_subprocess response = clt.pollresponse(self.active_seq, wait=0.05) File "C:\Program Files\Python 3.5\lib\idlelib\rpc.py", line 436, in pollresponse self.handle_EOF() File "C:\Program Files\Python 3.5\lib\idlelib\PyShell.py", line 383, in handle_EOF raise EOFError EOFError During handling of the above exception, another exception occurred: Traceback (most recent call last): ValueError: invalid literal for int() with base 10: '??' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files\Python 3.5\lib\tkinter\__init__.py", line 1534, in __call__ args = self.subst(*args) File "C:\Program Files\Python 3.5\lib\tkinter\__init__.py", line 1252, in _substitute e.num = getint_event(b) File "C:\Program Files\Python 3.5\lib\tkinter\__init__.py", line 1231, in getint_event return int(s) SystemError: result with error in PyObject_Call This needs to be checked on another OS, but the traceback problem does not strike me as Windows-specific. |
|||
msg237836 - (view) | Author: Guido van Rossum (gvanrossum) * | Date: 2015-03-11 02:05 | |
Yeah, the stack track makes me suspect http://bugs.python.org/issue17911 |
|||
msg238170 - (view) | Author: Robert Collins (rbcollins) * | Date: 2015-03-16 01:31 | |
I suspect that this is due to a list being passed in that wasn't created by traceback, in the older tuple-only format. That was meant to work, but possibly is being short circuited somewhere. Shall fix asap. |
|||
msg238171 - (view) | Author: Robert Collins (rbcollins) * | Date: 2015-03-16 01:48 | |
Ah, idle is being somewhat naughty. It's taking the original traceback and then mangling the contents in-place, which is preserving the type information, and throwing off StackSummary.from_list. We can and should make the new code deal with this in case other folk are doing it. In future it would be good to subsume cleanup_traceback's guts into the traceback module, but we don't need to do that now. |
|||
msg238172 - (view) | Author: Robert Collins (rbcollins) * | Date: 2015-03-16 01:59 | |
And here is a patch, since this is a regression I'll apply it tomorrow (or sooner if it gets reviews :)) |
|||
msg238173 - (view) | Author: Nick Coghlan (ncoghlan) * | Date: 2015-03-16 02:02 | |
Patch looks good to me. |
|||
msg238177 - (view) | Author: Roundup Robot (python-dev) | Date: 2015-03-16 02:27 | |
New changeset ea3cc128ce35 by Robert Collins in branch 'default': Issue #23631: Fix traceback.format_list when a traceback has been mutated. https://hg.python.org/cpython/rev/ea3cc128ce35 |
|||
msg238336 - (view) | Author: Robert Collins (rbcollins) * | Date: 2015-03-17 20:34 | |
Closing, though ideally Terry can confirm it is fully fixed for him. |
History | |||
---|---|---|---|
Date | User | Action | Args |
2022-04-11 14:58:13 | admin | set | github: 67819 |
2015-03-17 21:07:30 | berker.peksag | set | stage: needs patch -> resolved |
2015-03-17 20:34:25 | rbcollins | set | status: open -> closed resolution: fixed messages: + msg238336 |
2015-03-16 02:27:34 | python-dev | set | nosy:
+ python-dev messages: + msg238177 |
2015-03-16 02:02:09 | ncoghlan | set | messages: + msg238173 |
2015-03-16 01:59:20 | rbcollins | set | files:
+ issue-23631-1.patch keywords: + patch messages: + msg238172 |
2015-03-16 01:48:54 | rbcollins | set | messages: + msg238171 |
2015-03-16 01:31:22 | rbcollins | set | messages: + msg238170 |
2015-03-11 02:05:26 | gvanrossum | set | nosy:
+ gvanrossum messages: + msg237836 |
2015-03-10 22:34:20 | berker.peksag | set | nosy:
+ rbcollins |
2015-03-10 21:25:28 | terry.reedy | create |