Skip Menu |

This queue is for tickets about the POE-Component-Client-HTTP CPAN distribution.

Report information
The Basics
Id: 18339
Status: resolved
Priority: 0/
Queue: POE-Component-Client-HTTP

People
Owner: Nobody in particular
Requestors: tovod-everett [...] alascom.att.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: RE: PoCo::Client::HTTP dies . . .
Date: Thu, 29 Sep 2005 11:04:47 -0800
To: "Rocco Caputo" <rcaputo [...] pobox.com>
From: "Ovod-Everett, Toby" <tovod-everett [...] alascom.att.com>
It's going to take me a minute to get a tree set up with the latest POE, POE::Component::Client::HTTP, POE::Component::Client::Keepalive, etc. (looks like it now requires POE::Component::Client::DNS, even though that isn't mentioned in the Makefile.pl or the docs:). In the meantime, the attached code successfully downloads whatever URL is passed on the command line. However, if the URL references an IP address that is not active, I get: expected a request ID, but there is none at C:/Perl/site/lib/POE/Component/Client/HTTP.pm line 653. --Toby Ovod-Everett Show quoted text
-----Original Message----- From: Rocco Caputo [mailto:rcaputo@pobox.com] Sent: Wednesday, September 28, 2005 5:14 PM To: Ovod-Everett, Toby Subject: Re: PoCo::Client::HTTP dies . . . On Mar 18, 2005, at 21:46, Ovod-Everett, Toby wrote:
> I've seen a few old threads about PoCo::Client::HTTP dying. The > error still seems to be present in version 0.65. The error seems > to be that poco_weeble_timeout and poco_weeble_connect_error are > both added to the queue. I'm seeing: > > request 1 is timed out > > request 1 is wheel 2 > > wheel 2 encountered connect error 10065: Unknown error > > expected a request ID, but there is none at > POE::Component::Client::HTTP 653 > > The quick patch is to return in poco_weeble_connect_error instead > of calling die. After making that adjustment, the problem > disappears. The client still gets a call indicating that there was > an error initiating the HTTP connection from poco_weeble_timeout. > I'm running this under Windows XP, which may have something to do > with it. It appears that the initial TCP connection blocks under > XP, so I'm _guessing_ what happens is that poco_weeble_timeout is > sitting on the queue for 20 (presuming a Timeout value of 20) > seconds in the future, the initial connect call blocks and then > gets an error returned, so it appends poco_weeble_connect_error to > the queue. It is, however, now more than 20 seconds in the future, > so poco_weeble_timeout gets called first, it deletes the > wheel_to_request entry, and suddenly we have a problem.
I apologize for the lateness of this reply. POE::Component::Client::HTTP has undergone major revisions since 0.65. The biggest change has been HTTP 1.1 support, which required updating all the connection code to support keep-alive. I would not be surprised if your timeout race condition has been fixed. Without a test case, however, I cannot say for sure. -- Rocco Caputo - http://poe.perl.org/

Message body is not shown because sender requested not to inline it.

From: tovod-everett [...] alascom.att.com
Show quoted text
> -----Original Message----- > From: Rocco Caputo [mailto:rcaputo@pobox.com] > Sent: Wednesday, September 28, 2005 5:14 PM > To: Ovod-Everett, Toby > Subject: Re: PoCo::Client::HTTP dies . . . > > I apologize for the lateness of this reply. > POE::Component::Client::HTTP has undergone major revisions since > 0.65. The biggest change has been HTTP 1.1 support, which required > updating all the connection code to support keep-alive. I would not > be surprised if your timeout race condition has been fixed. Without > a test case, however, I cannot say for sure. >
Sorry for the lateness of mine! I did finally get around to testing it and it looks like the issue is resolved. I modified the demo.pl that was attached to the original message to unshift "." onto the head and built a lib tree with Net-DNS- 0.57, Net-IP-1.24, POE-0.3301, POE-Component-Client-DNS-0.9803, POE- Component-Client-HTTP-0.73, and POE-Component-Client-Keepalive-0.0701 and then ran demo.pl from in there with http://non.existent.ip.address/ and I get a valid failure rather than "expected a request ID, but there is none at C:/Perl/site/lib/POE/Component/Client/HTTP.pm line 653." --Toby Ovod-Everett