Terry J. Reedy added the comment:
Serhiy, I responded to your report and followups on a new issue, #22614.
Tal, if you can, please test ./python -m idlelib.idle Lib/decimal.py on OSX and
respond there.
--
resolution: - fixed
stage: test needed - resolved
status: open - closed
Serhiy Storchaka added the comment:
I forget how to get the third, micro number.
tkinter.Tcl().call('info', 'patchlevel')
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20167
___
Serhiy Storchaka added the comment:
On 3.5 the issue is gone, but on 3.4 and 2.7 following traceback are generated:
$ ./python -m idlelib.idle Lib/decimal.py
Traceback (most recent call last):
File /home/serhiy/py/cpython-3.4/Lib/runpy.py, line 170, in
_run_module_as_main
__main__,
Terry J. Reedy added the comment:
The above appears to be a system-specific open issue, not a close issue. So it
must be a different issue.
On my Win7
F:\Python\dev\4\py34\PCbuildpython_d -m idlelib ../Lib/decimal.py
close after open with freshly built 3.4.2+
F:\Python\dev\4\py34\PCbuild
Serhiy Storchaka added the comment:
In any case, the traceback makes no sense. Before
self.color_breakpoint_text() in __init__ are 3 self.text.bind
statements. So self.text = None seems implausible.
The code runs up to self.text.update() in restore_file_breaks() and runs
further only after
Serhiy Storchaka added the comment:
Changing update() to update_idletasks() fixes the issue. But we should
investigate why all works on 3.5 and is there downside of this change.
--
___
Python tracker rep...@bugs.python.org
Rusi added the comment:
Just confirming:
idle 3.4.1-1 on debian testing
Start idle3
Open recent file - some file
Close file
Close interpreter (and idle)
Get this
Exception ignored in: bound method _ComplexBinder.__del__ of
idlelib.MultiCall._ComplexBinder object at 0x7fc53638f4e0
Traceback
Terry J. Reedy added the comment:
The problem is the change in the exception message between these two lines
can't invoke bind command: application has been destroyed
can't invoke bind command: application has been destroyed
In your copy of MultiCall.py, line 63-4, change
APPLICATION_GONE =
Roundup Robot added the comment:
New changeset ce0316007b21 by Terry Jan Reedy in branch '3.4':
Issue #20167: revise condition to accomodate message change.
https://hg.python.org/cpython/rev/ce0316007b21
--
___
Python tracker rep...@bugs.python.org
Terry J. Reedy added the comment:
I verified that problem had returned on Windows as well. It would be good to
have a test that would fail if the tcl error message changed again.
--
resolution: fixed -
stage: needs patch - test needed
versions: +Python 3.5
Rusi added the comment:
On Fri, Oct 10, 2014 at 8:46 AM, Terry J. Reedy rep...@bugs.python.org wrote:
Terry J. Reedy added the comment:
I verified that problem had returned on Windows as well. It would be good to
have a test that would fail if the tcl error message changed again.
Rusi added the comment:
On Fri, Oct 10, 2014 at 8:49 AM, Rustom Mody rustompm...@gmail.com wrote:
On Fri, Oct 10, 2014 at 8:46 AM, Terry J. Reedy rep...@bugs.python.org
wrote:
Terry J. Reedy added the comment:
I verified that problem had returned on Windows as well. It would be good
to
Terry J. Reedy added the comment:
I know. 3.4.2.rc1 was released over 2 weeks ago and 3.4.2 just yesterday
(essentially without change). So you have to delete space again. Since 3.4.1
worked for many people, perhaps you have an ancient version of tk. You can get
major/minor number with
Terry J. Reedy added the comment:
This has been left open to see if the undlying problem can be found. If #20567
is a guide, there might be a root.destroy that should be followed by del root.
--
resolution: - fixed
stage: - needs patch
___
Python
Tal Einat added the comment:
Good catches, Terry and Serhiy!
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue20167
___
___
Python-bugs-list
Serhiy Storchaka added the comment:
Changes for _SimpleBinder.__del__ look doubtful. Any TclError exception is
suppressed and if statement does nothing. Perhaps you forgot else: raise?
And may be in other places too.
--
___
Python tracker
Roundup Robot added the comment:
New changeset b9e124851e47 by Terry Jan Reedy in branch 'default':
Issue #20167: Add missing else: break in 3 places as noticed by Serhiy.
http://hg.python.org/cpython/rev/b9e124851e47
--
___
Python tracker
Terry J. Reedy added the comment:
I checked that -m idlelib acts the same as -m idlelib.idle, and that there is
still a problem after opening a second editor window after the original. So the
messages seem tied to not opening a shell window. In testing the patch, I
noticed that exceptions are
Roundup Robot added the comment:
New changeset f9f2c57f7d00 by Terry Jan Reedy in branch 'default':
Issue #20167: Suppress 3.4 specific 'Exception ignored' messages.
http://hg.python.org/cpython/rev/f9f2c57f7d00
--
nosy: +python-dev
___
Python
Tal Einat added the comment:
This is caused by MultiCall's _ComplexBinder.__del__() being called during app
shutdown. _ComplexBinder.__del__() unbinds a bunch of event handlers from the
widget to which it is attached. It seems that there's some edge case here where
the underlying Tk widget
Serhiy Storchaka added the comment:
1. try/except should be inside a loop, not outside.
2. It would be better not to hide the problem under the rug, but find why the
order of destruction is different when open shell window. Of course, if better
solution will not be found, we will have to
Tal Einat added the comment:
I put the try/except outside of the loop on purpose. If calling the widget's
unbind() method fails once, it will fail forever afterwards.
If you prefer a different spelling, move the try/except into the loop, and
break out of the loop in case of an exception:
for
Tal Einat added the comment:
Attaching second patch, to replace the first.
As suggested by Serhiy, I moved the try/except block into the loop.
I also added a comment explaining the try/except block and referencing this
issue.
--
Added file:
Tal Einat added the comment:
Both previous patches caused an import error. Here's a new patch with that
fixed, and actually tested to fix the bug.
--
Added file:
http://bugs.python.org/file33927/taleinat_idle_closing_exception_3.patch
___
Python
Terry J. Reedy added the comment:
I tried all three versions both installed and recent repository builds and
verified that the overt issue is limited to 3.4. I agree that the exception
message suggests stopping with the first exception. Since there is a small cost
to try: and break, I am
Terry J. Reedy added the comment:
More thoughts: The reason for explicit __del__ is to release memory resources
connected to other objects or structures at the behest of the Python instance
being deleted. If __del__ were only called at shutdown, it would not be needed,
as all memory is
New submission from Serhiy Storchaka:
When run IDLE with file name as agument
$ ./python -m idlelib.idle Lib/decimal.py
and then close or exit it, following traceback is printed:
Exception ignored in: bound method _ComplexBinder.__del__ of
idlelib.MultiCall._ComplexBinder object at
27 matches
Mail list logo