classification
Title: OS X IDLE 2.7 from 64-bit installer hangs when you paste something.
Type: crash Stage: committed/rejected
Components: IDLE, Macintosh Versions: Python 2.7
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: ned.deily Nosy List: 5ragar5, benjamin.peterson, ned.deily, ronaldoussoren
Priority: critical Keywords:

Created on 2010-11-26 05:41 by 5ragar5, last changed 2011-03-09 05:02 by ned.deily. This issue is now closed.

Messages (9)
msg122441 - (view) Author: Richard (5ragar5) Date: 2010-11-26 05:41
Whenever I paste anything into the IDLE shell, the program freezes, and then crashes.

I'm using Python 2.7.1rcl with a Version 10.6.4 Mac OSX
msg122478 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-11-26 21:01
This appears to be another variant of the IDLE, OS X 10.6, 64-bit, Apple-supplied Tk 8.5 problems.  As a workaround, you can re-install 2.7rc1 using the 32-bit-only installer; IDLE there does not exhibit these problems.
msg122484 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2010-11-26 23:42
Is this a duplicate of other issues (close?)?
Is this an Apple problem beyond our control (close?)?
msg122505 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2010-11-27 07:38
On 27 Nov, 2010, at 0:42, Terry J. Reedy wrote:

> 
> Terry J. Reedy <tjreedy@udel.edu> added the comment:
> 
> Is this a duplicate of other issues (close?)?

I don't know yet.

> Is this an Apple problem beyond our control (close?)?

This might be fixable. There is a patch that improves AquaTk 8.5 support which I need to integrate/test.

Ronald
msg122506 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-11-27 07:43
Ronald, which patch are you thinking of?  Issue6075?
msg122547 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-11-27 20:04
Regardless of the root cause, I really hate to see 2.7.1 go out with this unresolved.  As it stands, IDLE was broken in the 2.7 64-bit OS X installer for 2.7 and, as it stands, is still broken.  And whether it is an Apple Tk problem or not (which remains to be determined), there are workarounds that could be applied - like having a 32-bit-only IDLE built with Aqua Tk 8.4 as the 32-bit installers do.
msg122655 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2010-11-28 13:09
Ned: I was thinking of Issue6075

The patch in that issue needs work, IIRC I was pretty sure at the time that the patch was too large and changed more code that it should have.

Sadly enough I have barely had time to do any open-source work at all the last couple of weeks, I should have some time before the end of the year...
msg122899 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2010-11-30 11:06
More data points: using the 2.7.1 release source tarball, the problem is reproducible on 10.6 when dynamically linked to the Apple Tcl/Tk 8.5 and executing in either 64-bit or 32-bit mode.  It is not reproducible when using ActiveState Tcl/Tk 8.5.9, AS Tcl/Tk 8.4.19, or Apple Tcl/Tk 8.4 (none of which, of course, is available in 64-bit mode).

Unfortunately, the obvious workaround for the 64-bit/32-bit variant - building with one of the working 32-bit versions - does not result in a working IDLE.app or bin/idle since IDLE and its subprocesses are all launched in 64-bit mode (where possible) on 10.6.  For testing, it is possible to demonstrate 32-bit mode in a 64-/32- build with a properly built _tkinter.so by using the -n parameter, which causes IDLE to run with no subprocesses:
   arch -i386 /usr/local/bin/idle2.7 -n

Next step: see if the Issue6075 patches help with the Apple 8.5 Tk and, if not, add stuff to force both IDLE.app and bin/idle and their subprocesses to run only in 32-bit mode: probably either some more lipo-ing and/or adding posix_spawns.
msg130424 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2011-03-09 05:02
Now that ActiveState has released a version of Tcl/Tk 8.5 (8.5.9.2) for Mac OS X that is also an Aqua Cocoa Tk (like the Apple-supplied Tk 8.5.7 in 10.6) and supports 64-bit, versions of Python linked with the new ActiveTcl 8.5.9 do not display the problem reported here as well as a number of other problems reported elsewhere.  Unfortunately, as released, the 64-bit/32-bit python.org Python 2.7.1 for 10.6 links only to the Apple-supplied Tcl/Tk 8.5. Until the next release of Python 2.7 (2.7.2), the best workaround without rebuilding remains to use the 32-bit-only installer for 2.7.1.

Instead of rebuilding, it *is* possible to modify the library paths in the _tkinter extension module using the OS X install_name_tool so that the released 2.7.1 Tkinter will link with an ActiveTcl 8.5.9:

$ cd /Library/Frameworks/Python.framework/Versions/2.7/
$ cd ./lib/python2.7/lib-dynload
$ sudo cp -pE _tkinter.so _tkinter.so.BACKUP  # just in case
$ sudo install_name_tool \
  -change /System/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl \
                 /Library/Frameworks/Tcl.framework/Versions/8.5/Tcl \
  -change /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk \
                 /Library/Frameworks/Tk.framework/Versions/8.5/Tk \
  _tkinter.so

But this is definitely not recommended as you will likely run into other issues that have been fixed since the 2.7.1 release.

There is now a webpage that summarizes the somewhat confusing state of affairs with regard to Tcl/Tk support with Python on Mac OS X:

http://www.python.org/download/mac/tcltk/
History
Date User Action Args
2011-03-09 05:40:59ned.deilylinkissue10690 superseder
2011-03-09 05:02:58ned.deilysetstatus: open -> closed
nosy: ronaldoussoren, benjamin.peterson, ned.deily, 5ragar5
messages: + msg130424

resolution: not a bug
stage: needs patch -> committed/rejected
2011-01-12 04:08:40ned.deilylinkissue10890 superseder
2010-12-31 01:09:08terry.reedysetnosy: ronaldoussoren, benjamin.peterson, ned.deily, 5ragar5
title: OS X IDLE 2.7rc1 from 64-bit installer hangs when you paste something. -> OS X IDLE 2.7 from 64-bit installer hangs when you paste something.
2010-11-30 11:06:59ned.deilysetmessages: + msg122899
2010-11-28 18:52:16terry.reedysetnosy: - terry.reedy
2010-11-28 13:09:31ronaldoussorensetmessages: + msg122655
2010-11-27 20:04:05ned.deilysetnosy: + benjamin.peterson
messages: + msg122547
2010-11-27 07:43:29ned.deilysetmessages: + msg122506
2010-11-27 07:38:14ronaldoussorensetmessages: + msg122505
2010-11-26 23:42:03terry.reedysetnosy: + terry.reedy
messages: + msg122484
2010-11-26 21:01:52ned.deilysetpriority: normal -> critical

assignee: ned.deily
components: + Macintosh
title: IDLE crashes when you paste something. -> OS X IDLE 2.7rc1 from 64-bit installer hangs when you paste something.
nosy: + ned.deily, ronaldoussoren

messages: + msg122478
stage: needs patch
2010-11-26 05:41:055ragar5create