[ python-Bugs-786827 ] IDLE starts with no menus (Cygwin build of python2.3)

SourceForge.net noreply at sourceforge.net
Sat Jul 30 07:15:12 CEST 2005


Bugs item #786827, was opened at 2003-08-11 09:58
Message generated for change (Comment added) made by danieljoyce
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=786827&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: IDLE
Group: Python 2.3
Status: Open
Resolution: None
Priority: 5
Submitted By: Duane Kaufman (duanekaufman)
Assigned to: Kurt B. Kaiser (kbk)
Summary: IDLE starts with no menus (Cygwin build of python2.3)

Initial Comment:
When started from a Cygwin window 
(duane at USD22C821 /cygdrive/d/my_python/Cygwin_test
$ /usr/lib/python2.3/idlelib/idle.py) The IDLE window has 
no menus.

If started as:
duane at USD22C821 /cygdrive/d/my_python/Cygwin_test
$ /usr/lib/python2.3/idlelib/idle.py -n

(no subprocess) the menus are present.

Starting Python:
duane at USD22C821 /cygdrive/d/my_python/Cygwin_test
$ python
Python 2.3 (#1, Aug  1 2003, 15:01:23)
[GCC 3.2 20020927 (prerelease)] on cygwin
Type "help", "copyright", "credits" or "license" for more 
information.
>>>

Win2k SP2

Duane Kaufman
duane.kaufman at med.ge.com

----------------------------------------------------------------------

Comment By: Daniel Joyce (danieljoyce)
Date: 2005-07-29 22:15

Message:
Logged In: YES 
user_id=1321088

I found the problem!  :D

Around line 394 of PyShell.py roughly, this function:

    def start_subprocess(self):
        # spawning first avoids passing a listening socket
to the subprocess
        self.spawn_subprocess()
        #time.sleep(20) # test to simulate GUI not accepting
connection
        addr = (LOCALHOST, self.port)
        # Idle starts listening for connection on localhost
        for i in range(3):
            time.sleep(i)
            try:
                self.rpcclt = MyRPCClient(addr)
                break
            except socket.error, err:
                pass
        else:
            self.display_port_binding_error()
            return None
        # Accept the connection from the Python execution server
        self.rpcclt.listening_sock.settimeout(10)
        try:
            self.rpcclt.accept()
        except socket.timeout, err:
            self.display_no_subprocess_error()
            return None
        self.rpcclt.register("stdin", self.tkconsole)
        self.rpcclt.register("stdout", self.tkconsole.stdout)
        self.rpcclt.register("stderr", self.tkconsole.stderr)
        self.rpcclt.register("flist", self.tkconsole.flist)
        self.rpcclt.register("linecache", linecache)
        self.rpcclt.register("interp", self)
        self.transfer_path()
        self.poll_subprocess()
        return self.rpcclt

It spawns the subprocess, but never manages to talk to it.
The socket.timeout exception is raised. Communication to the
subprocess fails in here:

            try:
                self.rpcclt = MyRPCClient(addr)
                break
            except socket.error, err:
                pass

Then, it tries to register the functions with tkconsole, and
TkInter seems to die. I haven't dug down into it yet to see
what exactly happens. But, I suspect that rpcclt is null
when self.rpcclt.register() is called.

So, it's not a Tk error. It's an error with trying to
contact the subprocess.



----------------------------------------------------------------------

Comment By: Jason Tishler (jlt63)
Date: 2004-01-21 06:44

Message:
Logged In: YES 
user_id=86216

Sean, thanks for the info.

Kurt, ring any bells?

----------------------------------------------------------------------

Comment By: Sean McCardell (smccardell)
Date: 2004-01-20 13:23

Message:
Logged In: YES 
user_id=956087

Don't know if this sheds any more light, but on WinXP, Python 
2.3.3: when starting IDLE with a file to edit (e.g. 'idle foo.py') 
the edit window becomes visible first. _And_ it has a visible 
menu bar. But when the shell window becomes visible, it has 
no menu bar, and the menu bar _disappears_ from the edit 
window.

----------------------------------------------------------------------

Comment By: Jason Tishler (jlt63)
Date: 2003-12-31 09:48

Message:
Logged In: YES 
user_id=86216

Unfortunately, not. The bug report was created
right before I was going on vacation last summer.
Since I'm still on vacation... :,)

Well...actually the assumed high "head banger"
factor has facilitated my procrastination.
Additionally, since I do not use use IDLE, I'm not
very motivated to build a debuggable Python and
Cygwin and attach to the hung process with gdb and
debug.

FWIW, I haven't forgetton. The bug report
stares me in the face everytime I read my email.
Unfortunately, I haven't taken any action. :,(

Are you a developer type? If so, would you be
willing to try to debug this problem yourself?

----------------------------------------------------------------------

Comment By: Duane Kaufman (duanekaufman)
Date: 2003-12-31 07:37

Message:
Logged In: YES 
user_id=574999

Hi,

I was wondering if there has been any motion on this item yet?

Thanks,
Duane

----------------------------------------------------------------------

Comment By: Duane Kaufman (duanekaufman)
Date: 2003-08-14 09:53

Message:
Logged In: YES 
user_id=574999

I am seeing the same behavior, and do _not_ see menus 
when started with a sub-process.

Duane

----------------------------------------------------------------------

Comment By: Jason Tishler (jlt63)
Date: 2003-08-14 09:47

Message:
Logged In: YES 
user_id=86216

> It sounds like you are getting farther than Duane
> Kaufman.

I don't think so. AFAICT, we are observing the same
behavior.

> I wonder if he was seeing the initial message in the
> shell window like you are.

My WAG is yes.

Duane, please confirm.

> Do you see the menus?

No.

----------------------------------------------------------------------

Comment By: Kurt B. Kaiser (kbk)
Date: 2003-08-14 09:39

Message:
Logged In: YES 
user_id=149084

Oh, big differences: Without the -n switch, which makes
IDLE act like the 2.2 version, IDLE starts up an execution
server subprocess which then connects to the user's
GUI.  This subprocess is restarted every time the user
does a Run/F5 or a Shell/Restart Shell.

There are other major differences.  The IDLE in 2.3 is the
version developed on the IDLEfork project at Sourceforge.

It sounds like you are getting farther than Duane Kaufman.
I wonder if he was seeing the initial message in the shell
window like you are.  Do you see the menus?

Well, gotta go  :-)

----------------------------------------------------------------------

Comment By: Jason Tishler (jlt63)
Date: 2003-08-14 09:06

Message:
Logged In: YES 
user_id=86216

> what bug are you thinking of?

Nothing in particular. However, experience has taught me
to consider Cygwin bugs when porting to Cygwin...

Anyway, I just found a difference between Python 2.2.3
and 2.3 after starting IDLE.

Under 2.2.3:

$ ps | fgrep python
     3308    1400    3308       3092    0 19695 
11:57:56 /home/jt/src/python-2.2.3-2/python

Under 2.3:

$ ps | fgrep python
     2244    1400    2244       2864    0 19695 
12:02:57 /usr/bin/python2.3
      700    2244    2244       3592    0 19695 
12:02:58 /usr/bin/python2.3

Note one python process under 2.2.3 and two under 2.3.
This may explain why IDLE works under 2.2.3 and not.

Were there major IDLE changes between 2.2.3 and 2.3?
If so, what?

----------------------------------------------------------------------

Comment By: Kurt B. Kaiser (kbk)
Date: 2003-08-14 08:21

Message:
Logged In: YES 
user_id=149084

Well, that's peculiar.  So the subprocess is starting up
ok but the menus aren't posted.  Now I'm thinking a 
TK problem -- what bug are you thinking of?

----------------------------------------------------------------------

Comment By: Jason Tishler (jlt63)
Date: 2003-08-14 07:49

Message:
Logged In: YES 
user_id=86216

kbk> There are no error messages in the
kbk> shell window?

No, the shell window just looks like the following:

Python 2.3 (#1, Aug  5 2003, 09:49:11) 
[GCC 3.2 20020927 (prerelease)] on cygwin
Type "copyright", "credits" or "license()" for more information.

    
**********************************************
******************
    Personal firewall software may warn about the connection 
IDLE
    makes to its subprocess using this computer's internal 
loopback
    interface.  This connection is not visible on any external
    interface and no data is sent to or received from the 
Internet.
    
**********************************************
******************
    
IDLE 1.0      
>>>

And appears to work, until one types "^D", then it hangs.


----------------------------------------------------------------------

Comment By: Kurt B. Kaiser (kbk)
Date: 2003-08-14 07:20

Message:
Logged In: YES 
user_id=149084

It appears that IDLE can't start its subprocess.  I have
a patch in process that will give proper error messages
and timeouts under that condition, at least giving the
user a notice about the failure.  

Then there is the question why the subprocess doesn't
start under Cygwin.  There are no error messages in the
shell window?

I'm going to be away for a few days myself.

----------------------------------------------------------------------

Comment By: Jason Tishler (jlt63)
Date: 2003-08-14 05:00

Message:
Logged In: YES 
user_id=86216

I would like to assign this (at least temporarily) to Kurt
for the following reasons:

1. I will be off-net for a while
2. I am not very familiar with Tkinter
3. I am not very familiar with IDLE
4. IDLE works fine under Python 2.2.3 with the identical
underlying software (e.g, Cygwin, Tcl/Tk, etc.)

However, IDLE under Python 2.3 could be tickling YA
Cygwin bug...

I will check in when I'm back...

Thanks.

----------------------------------------------------------------------

Comment By: Neal Norwitz (nnorwitz)
Date: 2003-08-13 15:38

Message:
Logged In: YES 
user_id=33168

Jason, if you can't help can you assign to Kurt (kbk)?  Thanks.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=786827&group_id=5470


More information about the Python-bugs-list mailing list