Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: Problem with AnyEvent::HTTP

by OverlordQ (Hermit)
on Aug 20, 2010 at 16:13 UTC ( [id://856309] : note . print w/replies, xml ) Need Help??

in reply to Problem with AnyEvent::HTTP

Couldn't find 599 - Unknown error anywhere, but there was Status => 599, Reason => $err. This was handler for a AnyEvent::Socket::tcp_connect call. Since it's Windows, are you running into KB969710? Try checking your event log for Event 4226.

Replies are listed 'Best First'.
Re^2: Problem with AnyEvent::HTTP
by bobr (Monk) on Aug 20, 2010 at 18:24 UTC
    Bingo, this seems to be it. Although I haven't found any 4226 in my event log, it looks like WinXP SP2 is limiting connections to 10. I tried the patch, but it does not seem to work.

    I found few more places in AnyEvent::HTTP (mostly on_error handlers) where reason is taken from outside. To be sure, I added some prefix to those error messages and indeed the error comes from tcp_connect.

    Knowing the limitation, I was able to work around. Not that I like hardcoding the number 10 like this, but limit connections is probably good idea anyway.

    use AnyEvent::HTTP; my @urls = map { chomp; $_ } <DATA>; while(my @ten_urls = splice(@urls,0,10)) { my $cv = AnyEvent->condvar; for my $url (@ten_urls) { $cv->begin; http_get $url, timeout => 5, sub { my ($body, $hdr) = @_; warn "[$hdr->{Status}:$hdr->{Reason}] ",$url," (",length($ +body),")\n"; $cv->end; }; } $cv->recv; warn "-----","\n"; }

    Really appreciate your help.

    -- thanks, Roman