On Thu, 24 Jan 2013 01:45:31 +0100, Hans Mulder wrote:

> On 24/01/13 00:58:04, Chris Angelico wrote:
>> On Thu, Jan 24, 2013 at 7:07 AM, Nick Cash
>> <nick.c...@npcinternational.com> wrote:
>>> Python 2.7.3 on linux
>>>
>>> This has me fairly stumped. It looks like
>>>         urllib2.urlopen("ftp://some.ftp.site/path";).read()
>>> will either immediately return '' or hang indefinitely. But
>>>         response = urllib2.urlopen("ftp://some.ftp.site/path";)
>>>         response.read()
>>> works fine and returns what is expected. This is only an issue with
>>> urllib2, vanilla urllib doesn't do it.
>>>
>>> The site I first noticed it on is private, but I can reproduce it with
>>> "ftp://ftp2.census.gov/";.
>> 
>> Confirmed on 2.6.5 on Windows, fwiw. This is extremely weird.
> 
> It works fine with 2.7.3 on my Mac.
> 
>> Possibly it's some kind of race condition??
> 
> If urllib2 is using active mode FTP, then a firewall on your box could
> explain what you're seeing.  But then, that's why active mode is hardly
> used these days.


Explain please?

I cannot see how the firewall could possible distinguish between using a 
temporary variable or not in these two snippets:

# no temporary variable hangs, or fails
urllib2.urlopen("ftp://ftp2.census.gov/";).read()


# temporary variable succeeds
response = urllib2.urlopen("ftp://ftp2.census.gov/";)
response.read()



-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to