Skip Menu |

This queue is for tickets about the Net-DNS CPAN distribution.

Report information
The Basics
Id: 18940
Status: resolved
Priority: 0/
Queue: Net-DNS

People
Owner: Nobody in particular
Requestors: djhale [...] lok.com
Cc:
AdminCc:

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



Subject: udp_connection will die if send fails
* Distribution name and version: Net::DNS 0.57 * Perl version (Find this by running the command perl -v) Summary of my perl5 (revision 5 version 8 subversion 6) configuration: Platform: osname=openbsd, osvers=3.8, archname=amd64-openbsd uname='openbsd' config_args='-dsE -Dopenbsd_distribution=defined' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fno-strict-aliasing -fno-delete-null-pointer-checks -pipe -I/usr/local/include', optimize='-O2', cppflags='-fno-strict-aliasing -fno-delete-null-pointer-checks -pipe -I/usr/local/include' ccversion='', gccversion='3.3.5 (propolice)', gccosandvers='openbsd3.8' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags ='-Wl,-E ' libpth=/usr/lib libs=-lm -lutil -lc perllibs=-lm -lutil -lc libc=/usr/lib/libc.so.38.2, so=so, useshrplib=true, libperl=libperl.so.10.0 gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-R/usr/libdata/perl5/amd64-openbsd/5.8.6/CORE' cccdlflags='-DPIC -fPIC ', lddlflags='-shared -fPIC ' Characteristics of this binary (from libperl): Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES Locally applied patches: SUIDPERLIO1 - fix PERLIO_DEBUG buffer overflow (CAN-2005-0156) SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962 Built under openbsd @INC: /usr/libdata/perl5/amd64-openbsd/5.8.6 /usr/local/libdata/perl5/amd64-openbsd/5.8.6 /usr/libdata/perl5 /usr/local/libdata/perl5 /usr/local/libdata/perl5/site_perl/amd64-openbsd /usr/libdata/perl5/site_perl/amd64-openbsd /usr/local/libdata/perl5/site_perl /usr/libdata/perl5/site_perl /usr/local/lib/perl5/site_perl . * Operating System vendor and version: OpenBSD localhost.localdomain 3.8 GENERIC.MP#1 amd64 * Problem Description: On line 376 of Nameserver.pm, there is a die that shouldn't be there. If you fail to send a packet, you shouldnt stop processing more packets, there might have just been a hiccup in the network. Attached is Nameserver.pm where the die has been removed, and if there is an error, a message is printed. For the short term, can you please remove that die from the code, something like i have done in the attached file. Later when you have more time, can you can look at the exceptions that actually caused the die? Thank you! -Darrian Below are some exceptions that I encountered that caused this die to occur: Uncaught exception from user code: send: No buffer space available at /usr/local/libdata/perl5/site_perl/amd64-openbsd/Net/DNS/Nameserver.pm line 376. at /usr/local/libdata/perl5/site_perl/amd64-openbsd/Net/DNS/Nameserver.pm line 376 Net::DNS::Nameserver::udp_connection('Net::DNS::Nameserver=HASH(0x4d735610)', 'IO::Socket::INET=GLOB(0x454c8d80)') called at /usr/local/libdata/perl5/site_perl/amd64-openbsd/Net/DNS/Nameserver.pm line 416 Net::DNS::Nameserver::loop_once('Net::DNS::Nameserver=HASH(0x4d735610)', 10) called at /usr/local/libdata/perl5/site_perl/amd64-openbsd/Net/DNS/Nameserver.pm line 489 Net::DNS::Nameserver::main_loop('Net::DNS::Nameserver=HASH(0x4d735610)') called at /var/www/bin/proxydnsserver.pl line 103 killed 0 states from 1 sources and 1 destinations Uncaught exception from user code: send: No route to host at /usr/local/libdata/perl5/site_perl/amd64-openbsd/Net/DNS/Nameserver.pm line 376. at /usr/local/libdata/perl5/site_perl/amd64-openbsd/Net/DNS/Nameserver.pm line 376 Net::DNS::Nameserver::udp_connection('Net::DNS::Nameserver=HASH(0x48bfadc0)', 'IO::Socket::INET=GLOB(0x40625d30)') called at /usr/local/libdata/perl5/site_perl/amd64-openbsd/Net/DNS/Nameserver.pm line 416 Net::DNS::Nameserver::loop_once('Net::DNS::Nameserver=HASH(0x48bfadc0)', 10) called at /usr/local/libdata/perl5/site_perl/amd64-openbsd/Net/DNS/Nameserver.pm line 489 Net::DNS::Nameserver::main_loop('Net::DNS::Nameserver=HASH(0x48bfadc0)') called at /var/www/bin/proxydnsserver.pl line 103
Subject: Nameserver.pm

Message body is not shown because it is too large.

I applied your fix and print a warning when verbose. It now lives on the subversion trunk I'll keep the ticket open.
fixed in 0.58 and no complaints...