in reply to Re: Windows: AnyEvent -> HTTP -> DNS - > Blocking for minutes
in thread Windows: AnyEvent -> HTTP -> DNS - > Blocking for minutes
Thanks for response, sorry I took so long to reply I have been ill.
Here is simple test that causes the issue on windows (disable all network adaptors on windows before running, so there are no DNS servers):
use AnyEvent; use AnyEvent::HTTP; my $cv = AnyEvent->condvar; my $timer = AnyEvent->timer(after=>1,interval=>1,cb=>sub{ print STDOUT + "."; flush STDOUT; }); my $sig = AnyEvent->signal (signal => "INT", cb => sub { $cv->send; }) +; http_get "http://www.google.com/", sub { print "Get completed (".$_[1]->{Status}.")"; $cv->send; }; $cv->recv;
I have figured out the call chain, but I am unable to determine what to do about it. It seems like Resolver is trying to send a udp packet to a blank IP address?
Anyevent::DNS is doing this:
my $r = Net::DNS::Resolver->new;Net::DNS::Resolver::MSWin32 in its _init is calling:
$defaults->nameservers(@nameservers);nameservers() is in Net::DNS::Resolver::Base which calls send() and _send_udp()
_send_udp is then calling can_read from IO::Select
This results in a blocking call at this line with the timeout being several minutes:
defined($r) && (select($r,undef,undef,$timeout) > 0)I cannot figure out what resolver is trying to do here or who it is even trying to send to. Any help would be great! Thanks
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Windows: AnyEvent -> HTTP -> DNS - > Blocking for minutes
by NERDVANA (Priest) on Oct 20, 2022 at 02:36 UTC | |
by hippo (Archbishop) on Oct 20, 2022 at 08:43 UTC | |
by sectokia (Friar) on Oct 20, 2022 at 04:26 UTC | |
by NERDVANA (Priest) on Oct 20, 2022 at 23:12 UTC | |
by sectokia (Friar) on Oct 21, 2022 at 01:13 UTC |