[Baypiggies] Need help root causing exception http.client.BadStatusLine

AM ams.fwd at gmail.com
Mon Oct 29 03:09:07 CET 2012


I think what Guido meant was that the server was alive but did not 
respond with anything, instead closing the connection.

Assuming you are running on linux or OSX a quick way to check it is to 
use the netcat tool in a terminal:

nc -l -p 8080

Then have your client connect to localhost:8080/...

In the terminal you should see the request. Ctrl-C netcat and you should 
(afaik) see the BadStatusLine error.

What that would mean is that somewhere tomcat decided to simply close 
the connection before any response was sent out.

HTH
AM

On 10/28/2012 06:37 PM, Shubhra Sharma wrote:
> Hi Guido,
>
> Thanks for responding.I will check the catalina logs to see what 
> happened.
>
> When tomcat is not running on my setup I see the following error:
>
>   File 
> "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/httplib2/__init__.py", 
> line 1207, in request
>     (response, content) = self._request(conn, authority, uri, 
> request_uri, method, body, headers, redirections, cachekey)
>   File 
> "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/httplib2/__init__.py", 
> line 961, in _request
>     (response, content) = self._conn_request(conn, request_uri, 
> method, body, headers)
>   File 
> "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/httplib2/__init__.py", 
> line 898, in _conn_request
>     conn.connect()
>   File 
> "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/http/client.py", 
> line 724, in connect
>     self.timeout, self.source_address)
>   File 
> "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/socket.py", 
> line 404, in create_connection
>     raise err
>   File 
> "/opt/local/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/socket.py", 
> line 395, in create_connection
>     sock.connect(sa)
> socket.error: [Errno 61] Connection refused
>
> I did not see the BadStatusLine exception in my unittesting. Is there 
> anything I can do to catch this exception, the try catch around the 
> http request did not catch it? I am using httplib2 if that helps
> Thanks,
> Shubhra
>
> On Sun, Oct 28, 2012 at 5:28 PM, Guido van Rossum <guido at python.org 
> <mailto:guido at python.org>> wrote:
>
>     That particular line where this is raised means the server closed the
>     connection without sending any response at all. Check your server
>     logs?
>
>     On Sun, Oct 28, 2012 at 4:00 PM, Shubhra Sharma
>     <sharma.shubhra07 at gmail.com <mailto:sharma.shubhra07 at gmail.com>>
>     wrote:
>     > Hi Aahz,
>     >
>     > Thanks for responding. I'm not sending an Expect Header and I'm
>     using
>     > Apache-Coyote/1.1
>     >
>     > Thanks,
>     > Shubhra
>     >
>     >
>     > On Sun, Oct 28, 2012 at 2:06 PM, Aahz <aahz at pythoncraft.com
>     <mailto:aahz at pythoncraft.com>> wrote:
>     >>
>     >> On Sun, Oct 28, 2012, Shubhra Sharma wrote:
>     >> >
>     >> > I am encountering http.client.BadStatusLine exception when I
>     run my
>     >> > python
>     >> > scripts on CentOS6.32 but things seem to work fine on MAC
>     OSX10.7.5 and
>     >> > 10.8. I'm on Python3.2.3.
>     >> >
>     >> > I searched for answers on the internet  and looked at the python
>     >> > documentation as well without much luck. As per the
>     documentation  if a
>     >> > server responds with a HTTP status code that we don?t
>     understand this
>     >> > error
>     >> > is raised. The server is a Tomcat server. Any ideas on how to
>     debug this
>     >> > will be greatly appreciated.
>     >> >
>     >> > Here's a snippet of the error:
>     >> > response = conn.getresponse()
>     >> >   python3.2/http/client.py", line 1049, in getresponse
>     >> >     response.begin()
>     >> >   python3.2/http/client.py", line 346, in begin
>     >> >     version, status, reason = self._read_status()
>     >> >   python3.2/http/client.py", line 328, in _read_status
>     >> >     raise BadStatusLine(line)
>     >> > http.client.BadStatusLine:
>     >>
>     >> I've seen various causes for this, but I'd start by making sure
>     that
>     >> you're not sending an Expect: header and doing HTTP/1.0 connection.
>     >> --
>     >> Aahz (aahz at pythoncraft.com <mailto:aahz at pythoncraft.com>)      
>         <*>
>     >> http://www.pythoncraft.com/
>     >>
>     >> "We've just found a line in a perl script that invokes a shell
>     script to
>     >> call
>     >> a lisp program which invokes the very-same perl script."
>      --anonymous
>     >> _______________________________________________
>     >> Baypiggies mailing list
>     >> Baypiggies at python.org <mailto:Baypiggies at python.org>
>     >> To change your subscription options or unsubscribe:
>     >> http://mail.python.org/mailman/listinfo/baypiggies
>     >
>     >
>     >
>     > _______________________________________________
>     > Baypiggies mailing list
>     > Baypiggies at python.org <mailto:Baypiggies at python.org>
>     > To change your subscription options or unsubscribe:
>     > http://mail.python.org/mailman/listinfo/baypiggies
>
>
>
>     --
>     --Guido van Rossum (python.org/~guido <http://python.org/%7Eguido>)
>
>
>
>
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies



More information about the Baypiggies mailing list