ConnectionError handling problem
shiva upreti
katewinslet626 at gmail.com
Wed Sep 30 02:04:47 EDT 2015
On Friday, September 25, 2015 at 12:55:01 PM UTC+5:30, Cameron Simpson wrote:
> On 24Sep2015 22:46, shiva upreti <katewinslet626 at gmail.com> wrote:
> >On Friday, September 25, 2015 at 10:55:45 AM UTC+5:30, Cameron Simpson wrote:
> >> On 24Sep2015 20:57, shiva upreti <katewinslet626 at gmail.com> wrote:
> >> >Thank you Cameron.
> >> >I think the problem with my code is that it just hangs without raising any
> >> >exceptions. And as mentioned by Laura above that when I press CTRL+C, it
> >> >just catches that exception and prints ConnectionError which is definitely
> >> >a lie in this case as you mentioned.
>
> Ok. You original code says:
>
> try:
> r=requests.post(url, data=query_args)
> except:
> print "Connection error"
>
> and presumably we think your code is hanging inside the requests.post call? You
> should probably try to verify that, because if it is elsewhere you need to
> figure out where (lots of print statements is a first start on that).
>
> I would open two terminals. Run your program until it hangs in one.
>
> While it is hung, examine the network status. I'll presume you're on a UNIX
> system of some kind, probably Linux? If not it may be harder (or just require
> someone other than me).
>
> If it is hung in the .post call, quite possibly it has an established connecion
> to the target server - maybe that server is hanging.
>
> The shell command:
>
> netstat -rn | fgrep 172.16.68.6 | fgrep 8090
>
> will show every connection to your server hosting the URL
> "http://172.16.68.6:8090/login.xml". That will tell you if you have a
> connection (if you are the only person doing the connecting from your machine).
>
> If you have the "lsof" program (possibly in /usr/sbin, so "/usr/sbin/lsof") you
> can also examine the state of your hung Python program. This:
>
> lsof -p 12345
>
> will report on the open files and network connections of the process with pid
> 12345. Adjust to suit: you can find your program's pid ("process id") with the
> "ps" command, or by backgrounding your program an issuing the "jobs" command,
> which should show the process id more directly.
>
> Cheers,
> Cameron Simpson <cs at zip.com.au>
Hi Cameron.
Yes I use ubuntu 14.04. I will try what you suggested. But I cant understand one thing, for whatever reason the script is hanging, why does it resumes almost instantaneously when I press CTRL+C.
Thanks.
More information about the Python-list
mailing list