[ python-Bugs-1593751 ] poor urllib error handling

SourceForge.net noreply at sourceforge.net
Thu Nov 9 22:04:07 CET 2006


Bugs item #1593751, was opened at 2006-11-09 16:04
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1593751&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: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Guido van Rossum (gvanrossum)
Assigned to: Nobody/Anonymous (nobody)
Summary: poor urllib error handling

Initial Comment:
I set up a simple server that returns an empty response.  

>>> from socket import *
>>> s = socket()
>>> s.bind(("", 9999))
>>> while 1: x, c = s.accept(); print c; x.recv(1000);
x.close()
...


Pointing urllib at this gives a traceback:

Python 2.6a0 (trunk:52099M, Oct  3 2006, 09:59:17) 
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for
more information.
>>> import urllib
>>> urllib.urlopen('http://localhost:9999/')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/guido/p/Lib/urllib.py", line 82, in urlopen
    return opener.open(url)
  File "/home/guido/p/Lib/urllib.py", line 190, in open
    return getattr(self, name)(url)
  File "/home/guido/p/Lib/urllib.py", line 334, in
open_http
    return self.http_error(url, fp, errcode, errmsg,
headers)
  File "/home/guido/p/Lib/urllib.py", line 351, in
http_error
    return self.http_error_default(url, fp, errcode,
errmsg, headers)
  File "/home/guido/p/Lib/urllib.py", line 608, in
http_error_default
    return addinfourl(fp, headers, "http:" + url)
  File "/home/guido/p/Lib/urllib.py", line 951, in __init__
    addbase.__init__(self, fp)
  File "/home/guido/p/Lib/urllib.py", line 898, in __init__
    self.read = self.fp.read
AttributeError: 'NoneType' object has no attribute 'read'
>>> 

I can repeat this with 2.2.3 and 2.4.3 as well (don't
have 2.3 around for testing).

The direct cause of the problem is that h.getfile() on
line 329 of urllib.py (in head of trunk) returns None.

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

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


More information about the Python-bugs-list mailing list