A guy on the Italian Python mailing list has just installed 2.3rc2 on top of his existing 2.2 and IDLE doesn't start. Specifically when he gives an explicit command at the DOS Box prompt of: python.exe "C:\Programmi\Python23\Lib\idlelib\idle.pyw" he sees from Task Manager that 2 python.exe instances start, one disappears after a few seconds, and on the DOS Box appear the messages: Python subprocess socket error: Connection refused, retrying.... Python subprocess socket error: Connection refused, retrying.... Python subprocess socket error: Connection refused, retrying.... Connection to Idle failed, exiting. *HOWEVER* IDLE runs fine IF he starts it while connected to the internet! This clearly points to a configuration/installation problem with his Win2000 SP3 box and I'm working with him to pin that down -- see if his sockets work at all when he's not on the net, etc, etc. Nevertheless I'm worried by this problem: no doubt it's something he needs to fix by correcting his Win2000 installation and configuration, *BUT*, just as doubtlessly a huge number of Windows machines out there must suffer from similar misconfiguration issues. If on all of those misbegotten boxes IDLE 1.0 silently refuses to start with no clarification nor error-message at all to the user as to WHY (typical newbies won't THINK of running idle.pyw at the prompt, they'll keep banging on icons and getting silent failure as a result), I predict a flood of help request to the main and help lists, AND many potential new users simply giving up on Python without even such help requests -- that would be pretty sad. I can't reproduce the problem myself -- I've tried deliberately breaking my Win/98 configuration but local sockets keep getting opened happily, and I have no Win/2000 box to try things on. Should I nevertheless try bug-reporting or even hacking a patch that puts out some kind of visible error message to the user if socket connection fails, even though I can't try it out myself? Does anybody agree with me that this doubtlessly trivial issue has the potential to do Python substantial damage, making it critical enough to address between 2.3rc2 and 2.3 final...? Alex
Noting that someone on the Tutor list running a "personal firewall" kind of program was disturbed because it reported that 2.3c1 IDLE was trying to access the Internet at startup. They were concerned about why IDLE would be reporting *anything* about them to another machine. I confess I had the same question when I first tried the new IDLE on Win98SE, and ZoneAlarm raised an eyebrow. Of course I looked at the source and saw then it was only talking to localhost, but for some reason it didn't occur to me that anyone else might wonder about this too. It's obvious that gazillions of Windows users will wonder about it. If anyone has an idea about where to put a reassuring explanation that a panicky Windows user is likely to read, don't be shy.
On Sat, Jul 26, 2003, Tim Peters wrote:
Noting that someone on the Tutor list running a "personal firewall" kind of program was disturbed because it reported that 2.3c1 IDLE was trying to access the Internet at startup. They were concerned about why IDLE would be reporting *anything* about them to another machine.
I confess I had the same question when I first tried the new IDLE on Win98SE, and ZoneAlarm raised an eyebrow. Of course I looked at the source and saw then it was only talking to localhost, but for some reason it didn't occur to me that anyone else might wonder about this too.
It's obvious that gazillions of Windows users will wonder about it. If anyone has an idea about where to put a reassuring explanation that a panicky Windows user is likely to read, don't be shy.
This is more code change than I'd like this late, but perhaps we should pop up a dialog the first time IDLE starts that stores a key in the registry when the user clicks OK. -- Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/ This is Python. We don't care much about theory, except where it intersects with useful practice. --Aahz
Aahz
This is more code change than I'd like this late, but perhaps we should pop up a dialog the first time IDLE starts that stores a key in the registry when the user clicks OK.
This doesn't help users on other platforms who may have similar concerns. Perhaps a pop up and then store a marker in .idlerc/config-main.cfg to show it's no longer the first start? -- KBK
On Sat, Jul 26, 2003, Kurt B. Kaiser wrote:
Aahz
writes: This is more code change than I'd like this late, but perhaps we should pop up a dialog the first time IDLE starts that stores a key in the registry when the user clicks OK.
This doesn't help users on other platforms who may have similar concerns. Perhaps a pop up and then store a marker in .idlerc/config-main.cfg to show it's no longer the first start?
That'd work, provided .idlerc/ is stored in a user's directory. -- Aahz (aahz@pythoncraft.com) <*> http://www.pythoncraft.com/ This is Python. We don't care much about theory, except where it intersects with useful practice. --Aahz
Aahz
That'd work, provided .idlerc/ is stored in a user's directory.
On XP it's in \Documents and Settings\<usr>\.idlerc\ On W2K and W98 it gets stored in c:\ but those boxes tend to be single user machines anyhow. Centrally administrated boxes have probably been moved to XP by now. I haven't investigated what needs to be done to get .idlerc into the user's Documents and Settings on W2K as yet. -- KBK
On Saturday 26 July 2003 05:56 pm, Tim Peters wrote:
Noting that someone on the Tutor list running a "personal firewall" kind of program was disturbed because it reported that 2.3c1 IDLE was trying to access the Internet at startup. They were concerned about why IDLE would be reporting *anything* about them to another machine.
I confess I had the same question when I first tried the new IDLE on Win98SE, and ZoneAlarm raised an eyebrow. Of course I looked at the source and saw then it was only talking to localhost, but for some reason it didn't occur to me that anyone else might wonder about this too.
It's obvious that gazillions of Windows users will wonder about it. If anyone has an idea about where to put a reassuring explanation that a panicky Windows user is likely to read, don't be shy.
Just brainstorming...: in the Windows installer (if a suitable place can be found); in the README most definitely (SOME users, albeit a minority, will have a look at the README -- far fewer than will think to look at the IDLE sources or be able to make sense of them); in the "what's new" doc; in the IDLE docs; ... (not intended to be mutually exclusive). More ideas, anybody? Alex
On Saturday 26 July 2003 06:05 pm, Alex Martelli wrote:
On Saturday 26 July 2003 05:56 pm, Tim Peters wrote:
Noting that someone on the Tutor list running a "personal firewall" kind of program was disturbed because it reported that 2.3c1 IDLE was trying to access the Internet at startup. They were concerned about why IDLE would be reporting *anything* about them to another machine.
I confess I had the same question when I first tried the new IDLE on Win98SE, and ZoneAlarm raised an eyebrow. Of course I looked at the source and saw then it was only talking to localhost, but for some reason it didn't occur to me that anyone else might wonder about this too.
It's obvious that gazillions of Windows users will wonder about it. If anyone has an idea about where to put a reassuring explanation that a panicky Windows user is likely to read, don't be shy.
Just brainstorming...: in the Windows installer (if a suitable place can be found); in the README most definitely (SOME users, albeit a minority, will have a look at the README -- far fewer than will think to look at the IDLE sources or be able to make sense of them); in the "what's new" doc; in the IDLE docs; ... (not intended to be mutually exclusive).
More ideas, anybody?
Alex
Alex just explained to me what this situation is about and I'm very concerned. As a sometime Windows user, I installed Python on my computer at work as well as on my Linux box at home. If, in starting IDLE, I had seen a message like ya'll are talking about, I'd have assumed that Python/IDLE had decided to follow the example of some of our closed source villains and was attempting to send some kind of personal information about my system to someone somewhere. This would have stopped me in my tracks, especially since I was running it at work. I think this needs to be dealt with as a very serious issue - the use of sockets for coprocesses in the new IDLE desperately needs to be explained clearly for the uninitiated, and a notice on the FRONT PAGE of python.org should be prominently displayed, imho, with a link to the fuller NEWBIE-friendly explanation. I *also* agree with Aahz's idea of a reassuringly-worded pop-up that handles the problem quietly. Please - don't blow this off - there are a lot of (justifiably or not) paranoid people out there who may be tentatively exploring programming via Python and this kind of thing could really scare them off. There are also a lot ot potential pythonistas who *dont'* understand sockets but still want to learn Python. (For example, I saw a number of pythonistas at the tutorial on sockets and other networking issues at OSCON, so I know that not all pythonistas understand sockets.) If we simply ignore this issue - we're likely to lose people over it. And I would find that a sad thing. cordially, Anna Ravenscroft
Anna Ravenscroft wrote:
[IDLE uses connections to localhost for interprocess communication; this triggers "security alerts" in some so-called "Personal Firewalls"]
http://www.fefe.de/pffaq/ explains this topic exhaustively. I'll refrain from further comments about this "problem" for now, as I might regret them afterwards. -- Gerhard
On Sat, 2003-07-26 at 13:19, Gerhard Häring wrote:
Anna Ravenscroft wrote:
[IDLE uses connections to localhost for interprocess communication; this triggers "security alerts" in some so-called "Personal Firewalls"]
http://www.fefe.de/pffaq/ explains this topic exhaustively.
I'll refrain from further comments about this "problem" for now, as I might regret them afterwards.
I wouldn't want to link Python to something that calls the user an idiot in its second answer. -Barry
[Gerhard Häring]
http://www.fefe.de/pffaq/ explains this topic exhaustively.
I'll refrain from further comments about this "problem" for now, as I might regret them afterwards.
[Barry]
I wouldn't want to link Python to something that calls the user an idiot in its second answer.
Well, I certainly would, I only object because the referenced page isn't helpful <wink>. for-best-security-flip-the-off-switch-and-unplug-it-ly y'rs - tim
Alex Martelli
Just brainstorming...: in the Windows installer (if a suitable place can be found); in the README most definitely (SOME users, albeit a minority, will have a look at the README -- far fewer than will think to look at the IDLE sources or be able to make sense of them); in the "what's new" doc; in the IDLE docs; ... (not intended to be mutually exclusive).
More ideas, anybody?
I'll send in a patch to .../idlelib/README.txt to add a comment about this. The README is accessible from the About IDLE dialog available on the Help menu so there's a /slight/ chance it might be read :-) The popup on first use is probably necessary if you really want (to attempt :) to get the user's attention. -- KBK
On Sat, 2003-07-26 at 12:43, Kurt B. Kaiser wrote:
I'll send in a patch to .../idlelib/README.txt to add a comment about this. The README is accessible from the About IDLE dialog available on the Help menu so there's a /slight/ chance it might be read :-)
As a point of order, Kurt, you have blanket authority to commit any changes to documentation related to this idle issue, at least up until code freeze sometime near 7pm EDT on Tuesday. If you think you need to make more extensive changes to idle before then, please let me and Tim know (at the least). It would suck to have idle broken in 2.3 final, but I don't think we can hold up the release for this. -Barry
[Alex Martelli]
Just brainstorming...: in the Windows installer (if a suitable place can be found);
If someone can suggest newbie-comprehensible text, I think that's a good idea. It's easy enough to add a new dialog to the installer, and I'd insert this as the first dialog presented. People who have installed Python before would notice it then, since it would be both the first thing they see, and brand new.
"Tim Peters"
If someone can suggest newbie-comprehensible text, I think that's a good idea. It's easy enough to add a new dialog to the installer, and I'd insert this as the first dialog presented. People who have installed Python before would notice it then, since it would be both the first thing they see, and brand new.
Maybe use the text from the shell banner in Patch 778286. -- KBK
[Tim]
If someone can suggest newbie-comprehensible text, I think that's a good idea. It's easy enough to add a new dialog to the installer, and I'd insert this as the first dialog presented. People who have installed Python before would notice it then, since it would be both the first thing they see, and brand new.
[Kurt B. Kaiser]
Maybe use the text from the shell banner in Patch 778286.
I will if it gets pursued, but I don't like the installer idea anymore, because you plan to do plenty already to warn IDLE users about these issues.
On Sunday 27 July 2003 07:06 am, Tim Peters wrote:
[Tim]
If someone can suggest newbie-comprehensible text, I think that's a good idea. It's easy enough to add a new dialog to the installer, and I'd insert this as the first dialog presented. People who have installed Python before would notice it then, since it would be both the first thing they see, and brand new.
[Kurt B. Kaiser]
Maybe use the text from the shell banner in Patch 778286.
+ (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.) I like this - it's clear and concise. And newbie-friendly enough, imho.
I will if it gets pursued, but I don't like the installer idea anymore, because you plan to do plenty already to warn IDLE users about these issues.
So, excuse my caffeine-deficient brain: when is this message going to appear? On installation, or on first run of IDLE, or both? I hope it will appear on first run of IDLE, or both. I'm remembering my first installation of Python - I had no idea yet what IDLE was. I was starting from the point of "let's install it and play with it" and then started working my way through the tutorial... If a message came up in installation, I might look at it uncomprehendingly and continue on and then wonder what was going on when IDLE starts - and try to find that message again. If there's a place to look it up outside of IDLE's help (someone suggested the download page, others suggested the README), or better yet, a pop-up when IDLE first starts, before the firewall complains, I'd have felt much more comfortable. I think that eventually some code fix will be necessary to handle the firewall issues. But, the notice is certainly a great first step (and I think, sufficient for even us newbies). Just my $.03 worth, Anna Ravenscroft
"Tim Peters"
I will if it gets pursued, but I don't like the installer idea anymore, because you plan to do plenty already to warn IDLE users about these issues.
Nick Coghlan points out that if Zone Alarm intercepts the connection the shell will not start. In that case the banner will not be displayed because the current implementation establishes the connection before opening the shell window. A way around this is to start with the -n switch, but that's not a practical solution, especially for Windows. It should be possible to pop up the notification dialog before that point in the code is reached, but that's left for 2.3.1. So a comment in the installer may be helpful. -- KBK
[Kurt B. Kaiser]
Nick Coghlan points out that if Zone Alarm intercepts the connection the shell will not start. In that case the banner will not be displayed because the current implementation establishes the connection before opening the shell window.
Right.
...
It should be possible to pop up the notification dialog before that point in the code is reached, but that's left for 2.3.1.
So a comment in the installer may be helpful.
I'm going to skip that. Installer changes have a way of breaking unexpectedly on Finnish Windows XP service pack 2 <0.6 wink>, and adding a new dialog requires tedious non-local changes (e.g., the current first dialog has to grow a new "back" button then) -- in all, it's more code fiddling than I had hoped. Also, as Anna pointed out, true newbies would have no idea what the installer blurb is talking about. I added a melding of your and Nick's text to NEWS.txt instead. That should be enough (IMO).
Alex Martelli
A guy on the Italian Python mailing list has just installed 2.3rc2 on top of his existing 2.2 and IDLE doesn't start. Specifically when he gives an explicit command at the DOS Box prompt of:
python.exe "C:\Programmi\Python23\Lib\idlelib\idle.pyw"
he sees from Task Manager that 2 python.exe instances start, one disappears after a few seconds, and on the DOS Box appear the messages:
Python subprocess socket error: Connection refused, retrying....
Python subprocess socket error: Connection refused, retrying....
Python subprocess socket error: Connection refused, retrying....
Connection to Idle failed, exiting.
If he got this far, the GUI process was able to set up a listening socket on 127.0.0.1 / 8833 but the subprocess was not able to make a connection to it. I have seen this problem in the past when a crashed IDLE GUI process was left listening on 8833. Please have him check the task manager, there should be only two pythonw.exe running in W2K. Sorting the task manager on the first column helps to see this.
*HOWEVER* IDLE runs fine IF he starts it while connected to the internet! This clearly points to a configuration/installation problem with his Win2000 SP3 box
Please define "connected to the internet". Does it mean plug in the RJ-45? What exactly does he do to "disconnect"? Are reboots involved? (He should upgrade his box, there is a critical buffer overflow hole in Direct X announced a couple of days ago. It would also be interesting to see if SP4 etc. fixes the problem.)
and I'm working with him to pin that down -- see if his sockets work at all when he's not on the net, etc, etc. Nevertheless I'm worried by this problem: no doubt it's something he needs to fix by correcting his Win2000 installation and configuration, *BUT*, just as doubtlessly a huge number of Windows machines out there must suffer from similar misconfiguration issues. If on all of those misbegotten boxes IDLE 1.0 silently refuses to start with no clarification nor error-message at all to the user as to WHY (typical newbies won't THINK of running idle.pyw at the prompt, they'll keep banging on icons and getting silent failure as a result),
Well, this is the key point. Things can and no doubt will go wrong, many of them beyond the control of IDLE or Python. It's desirable to let the user know what's going on if possible and not leave him "banging the icons" :-)
I predict a flood of help request to the main and help lists, AND many potential new users simply giving up on Python without even such help requests -- that would be pretty sad.
I can't reproduce the problem myself -- I've tried deliberately breaking my Win/98 configuration but local sockets keep getting opened happily, and I have no Win/2000 box to try things on.
I can't see it on W2K / SP4 or XP Pro 2002 / SP1 but I need to know what "disconnect from the internet" means.
Should I nevertheless try bug-reporting or even hacking a patch that puts out some kind of visible error message to the user if socket connection fails, even though I can't try it out myself? Does anybody agree with me that this doubtlessly trivial issue has the potential to do Python substantial damage, making it critical enough to address between 2.3rc2 and 2.3 final...?
This would involve having the subprocess open a Tk window with the error message. I'll take a look at it. However, I'm going to be away for a couple of days starting this afternoon. -- KBK
On Saturday 26 July 2003 18:22, Kurt B. Kaiser wrote: ...
Python subprocess socket error: Connection refused, retrying....
Python subprocess socket error: Connection refused, retrying....
Python subprocess socket error: Connection refused, retrying....
Connection to Idle failed, exiting.
If he got this far, the GUI process was able to set up a listening socket on 127.0.0.1 / 8833 but the subprocess was not able to make a connection to it. I have seen this problem in the past when a crashed IDLE GUI process was left listening on 8833. Please have him check the task manager, there should be only two pythonw.exe running in W2K. Sorting the task manager on the first column helps to see this.
Sorry, I was translating only a part of the very copious information I exchanged (in Italian) with that user. He IS quite aware that a pythonw.exe process may often be left hanging for one reason or another and on all attempts has been careful to terminate all python.exe and pythonw.exe processes.
*HOWEVER* IDLE runs fine IF he starts it while connected to the internet! This clearly points to a configuration/installation problem with his Win2000 SP3 box
Please define "connected to the internet". Does it mean plug in the RJ-45? What exactly does he do to "disconnect"? Are reboots involved?
Nope. It's a Windows functionality that in the Italian versions of Windows is called "Connessione Remota" (and I don't have a US version of Windows at hand to check how it's called there): connects your machine to the net via your modem and your ISP, by dialing out and handshaking appropriately (normally with PPP, I believe) etc. The icon/Start menu entry to activate this is labeled something like "Connect to the Internet" (or the Italian translation thereof), so it seems quite reasonable for Windows users to call it similarly.
(He should upgrade his box, there is a critical buffer overflow hole in Direct X announced a couple of days ago. It would also be interesting to see if SP4 etc. fixes the problem.)
OK, I'll let him know. My hypothesis is that any good reinstall & config of his box will fix HIS problem (he needs a loopback interface adapter, if I recall WIndows terms correctly) but that's not the gist of the problem. How many thousands of Windows users will have machines that only support sockets when "connected to the internet" (dialed out), or personal firewalls that don't know that localhost is safe to connect to (as Tim Peters reported), etc? Helping that Italian user fix his own problem won't help those thousands...
(typical newbies won't THINK of running idle.pyw at the prompt, they'll keep banging on icons and getting silent failure as a result),
Well, this is the key point. Things can and no doubt will go wrong, many of them beyond the control of IDLE or Python. It's desirable to let the user know what's going on if possible and not leave him "banging the icons" :-)
Right. In other words you seem to second Aahz's suggestion of some dialog the first time IDLE is started -- I've seen Anna second (third?) it too, and I'll fourth it -- yes, adding code so late is quite unpleasant, but if we don't this is going to be a black eye for the reputation of Python 2.3 among the unwashed masses, IMHO.
opened happily, and I have no Win/2000 box to try things on.
I can't see it on W2K / SP4 or XP Pro 2002 / SP1 but I need to know what "disconnect from the internet" means.
I'm pretty sure it means "hang up the remote-connection to the ISP" and that it will give no problem on a well-configured machine.
This would involve having the subprocess open a Tk window with the error message. I'll take a look at it. However, I'm going to be away for a couple of days starting this afternoon.
At least an error message that's user readable would be better than nothing, though it won't help with the personal firewall side of things. Alex
Alex Martelli
This would involve having the subprocess open a Tk window with the error message. I'll take a look at it. However, I'm going to be away for a couple of days starting this afternoon.
At least an error message that's user readable would be better than nothing, though it won't help with the personal firewall side of things.
Two separate issues: 1. Failure of IDLE to initialize its subprocess doesn't result in a message visible to the user. 2. Unnecessary user aggravation (I'm paranoid, too) caused by personal firewall software complaining about use of the loopback interface. The use of sockets and the loopback interface was chosen as an IPC method that is supported by Windows as well as Unix based platforms. In the absence of personal firewall software no warnings are seen by the user. -- KBK
participants (7)
-
Aahz
-
Alex Martelli
-
Anna Ravenscroft
-
Barry Warsaw
-
Gerhard Häring
-
kbk@shore.net
-
Tim Peters