Re: PoCo::Client::HTTP 0.943 + run_one_timeslice = block

Rocco Caputo <[email protected]> Sat, 30 Jul 2011 04:45:04 -0400
Newsgroups gmane.comp.lang.perl.poe
Message-ID <[email protected]>
Please open a ticket against POE::Component::Client::HTTP if shutdown in your DESTROY method doesn't resolve it.

-- 
Rocco Caputo <[email protected]>

On Jun 22, 2011, at 23:19, Rocco Caputo wrote:

> It may have something to do with the new POE::Component::Resolver dependency via POE::Component::Client::Keepalive.
> 
> You're trying to trigger a shutdown by destroying a LWP::UserAgent::POE object.  However, you don't have a DESTROY method that "shutdown"s PoCo::Client::HTTP.
> 
> Without an explicit shutdown, I think KeepAlive is keeping sockets alive.
> 
> -- 
> Rocco Caputo <[email protected]>
> 
> On Jun 18, 2011, at 14:17, [email protected] wrote:
> 
>> Something must have changed in PoCo::Client::HTTP 0.943 leaving the
>> kernel blocking even if all requests have been processed.
>> 
>> It occurs with a component using the (evil, I know!) run_one_timeslice()
>> method, namely
>> 
>>    http://cpansearch.perl.org/src/MSCHILLI/LWP-UserAgent-POE-0.03/POE.pm
>> 
>> which then hangs in the test at
>> 
>>    http://cpansearch.perl.org/src/MSCHILLI/LWP-UserAgent-POE-0.03/t/001Basic.t
>> 
>> What I'm seeing is that even when the only HTTP request has been
>> processed, the kernel reports
>> 
>> === 18510 === <rc> +----- GC test for session 1-----
>> <rc> | total refcnt  : 2
>> <rc> | event count   : 0
>> <rc> | post count    : 0
>> <rc> | child sessions: 2
>> <rc> | handles in use: 0
>> <rc> | aliases in use: 0
>> <rc> | extra refs    : 0
>> <rc> | pid count     : 0
>> <rc> +---------------------------------------------------
>> 
>> and then blocks on the main CORE::select() with a timeout of roughly
>> 3600 seconds instead of terminating the main loop.
>> 
>> Any ideas on what might have changed recently?
>> 
>> -- Mike
>> 
>> Mike Schilli
>> [email protected]
>