Skip Menu |

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

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

People
Owner: Nobody in particular
Requestors: tdrugeon [...] cpan.org
Cc: matteo [...] corti.li
voegelas [...] cpan.org
AdminCc:

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



Subject: Net::DNS::Resolver bgsend
Date: Wed, 11 Nov 2015 18:47:17 +0100
To: bug-Net-DNS [...] rt.cpan.org
From: thomas drugeon <tdrugeon [...] cpan.org>
Hello, I would like to thank you for developing and maintaining this very useful module that I use on a daily basis. I have recently updated some of my servers to the last 1.03 version and I am facing a problem with an API change. The bgsend method in the Net::DNS::Resolver module used to return a socket handler, but it looks like it is not the case anymore in version 1.03 where a IO::Select object is returned. Could this be reverted to the previous API to preserve compatibility? Thank you Thomas
On Wed Nov 11 18:48:13 2015, tdrugeon@cpan.org wrote: Show quoted text
> [...] > The bgsend method in the Net::DNS::Resolver module used to return a socket > handler, but it looks like it is not the case anymore in version 1.03 where > a IO::Select object is returned.
This error message from bgread() might be a related problem: Nov 12 10:49:06 spamassassin spamd[11522]: spf: lookup failed: Can't locate object method "handles" via package "IO::Socket::IP" at /usr/share/perl5/vendor_perl/Net/DNS/Resolver/Base.pm line 735 731 sub bgread { 732 my $self = shift; 733 my $sel = shift || return undef; 734 735 my ($handle) = $sel->handles; I reverted Net::DNS to version 1.02 and now the error message is gone. I use Perl 5.22.0 and Mail::SpamAssassin 3.4.1 on Slackware Linux. I've got no backtrace but bgsend() and bgread() are called from Mail::SpamAssassin::DnsResolver.
On Thu Nov 12 08:19:48 2015, voegelas wrote: Show quoted text
> On Wed Nov 11 18:48:13 2015, tdrugeon@cpan.org wrote:
So the changelog notes that IO::Socket::IP is only used if IO::Socket::INET6 is not present. Does it work if you install IO::Socket::INET6?
On Fri Nov 13 13:48:08 2015, MISHIKAL wrote: Show quoted text
> On Thu Nov 12 08:19:48 2015, voegelas wrote:
> > On Wed Nov 11 18:48:13 2015, tdrugeon@cpan.org wrote:
> > So the changelog notes that IO::Socket::IP is only used if > IO::Socket::INET6 is not present. Does it work if you install > IO::Socket::INET6?
Never mind. The issue is that a MAJOR change to the Net::DNS API was made in a POINT release, which is a fundamental release process failure. Siginficant, non-backwards compatible API changes should never be made in point releases. Seems like there should be a 1.04 with the old API restored for bgsend etc.
On 2015-11-13 14:15:40, MISHIKAL wrote: Show quoted text
> On Fri Nov 13 13:48:08 2015, MISHIKAL wrote:
> > On Thu Nov 12 08:19:48 2015, voegelas wrote:
> > > On Wed Nov 11 18:48:13 2015, tdrugeon@cpan.org wrote:
> > > > So the changelog notes that IO::Socket::IP is only used if > > IO::Socket::INET6 is not present. Does it work if you install > > IO::Socket::INET6?
> > > Never mind. The issue is that a MAJOR change to the Net::DNS API was > made in a POINT release, which is a fundamental release process > failure. Siginficant, non-backwards compatible API changes should > never be made in point releases. > > Seems like there should be a 1.04 with the old API restored for bgsend > etc.
List of CPAN modules which are broken by Net-DNS-1.03: - TOKUHIROM/Net-DNS-Paranoid-0.08.tar.gz - https://github.com/tokuhirom/Net-DNS-Paranoid/issues/2 - KARASIK/IO-Lambda-1.24.tar.gz - https://rt.cpan.org/Ticket/Display.html?id=108911 -> fixed in 1.25 - SULLR/Mail-SPF-Iterator-1.11.tar.gz - https://rt.cpan.org/Ticket/Display.html?id=108914 - SHEVEK/Net-DNS-Async-1.07.tar.gz - https://rt.cpan.org/Ticket/Display.html?id=108915 - KYANNY/WebService-Livedoor-SpamChampuru-DNSBL-0.02.tar.gz - https://rt.cpan.org/Ticket/Display.html?id=108916 - KMCGRAIL/SpamAssassin/Mail-SpamAssassin-3.4.1.tar.gz - https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7265 - BINGOS/POE-Component-Server-DNS-0.30.tar.gz - https://rt.cpan.org/Ticket/Display.html?id=108936 - COSIMO/Net-Prober-0.14.tar.gz - https://rt.cpan.org/Ticket/Display.html?id=109092
Thank you all for reporting and sorry for the late response, I have been occupied the previous two weeks. I will address these issues with the highest priority coming week. Note though that we do release candidates and ask you for review and regression testing before we do actual release. On Wed 18 Nov 2015 03:35:56, SREZIC wrote: Show quoted text
> List of CPAN modules which are broken by Net-DNS-1.03: > > - TOKUHIROM/Net-DNS-Paranoid-0.08.tar.gz - > https://github.com/tokuhirom/Net-DNS-Paranoid/issues/2 > - KARASIK/IO-Lambda-1.24.tar.gz - > https://rt.cpan.org/Ticket/Display.html?id=108911 -> fixed in 1.25 > - SULLR/Mail-SPF-Iterator-1.11.tar.gz - > https://rt.cpan.org/Ticket/Display.html?id=108914 > - SHEVEK/Net-DNS-Async-1.07.tar.gz - > https://rt.cpan.org/Ticket/Display.html?id=108915 > - KYANNY/WebService-Livedoor-SpamChampuru-DNSBL-0.02.tar.gz - > https://rt.cpan.org/Ticket/Display.html?id=108916 > - KMCGRAIL/SpamAssassin/Mail-SpamAssassin-3.4.1.tar.gz - > https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7265 > - BINGOS/POE-Component-Server-DNS-0.30.tar.gz - > https://rt.cpan.org/Ticket/Display.html?id=108936 > - COSIMO/Net-Prober-0.14.tar.gz - > https://rt.cpan.org/Ticket/Display.html?id=109092
On 2015-11-20 03:35:05, NLNETLABS wrote: Show quoted text
> Note though that we do release candidates and ask you for review and > regression testing before we do actual release.
I wish the cpantesters had a better infrastructure for doing regression testing of imported upstream modules. Currently the best you can do is asking at the cpan-testers-discuss@perl.org mailing list and hoping that somebody does a setup for a systematic regression test.
On 2015-11-22 12:59:07, SREZIC wrote: Show quoted text
> ... of imported upstream modules ...
I meant "important".
Slaven, Still working on the issue (we're making progress...). Also, I will do regression testing of packages dependent on Net::DNS in the future myself. At least for the affected packages that you mentioned. I am interested in how you found those packages though. I saw your statistical analysis in RT#108914. Is that how you found them? On Sun 22 Nov 2015 13:02:42, SREZIC wrote: Show quoted text
> On 2015-11-22 12:59:07, SREZIC wrote:
> > ... of imported upstream modules ...
> > I meant "important". > >
FYI, we are still addressing the issue and making progress. We will come back to this shortly.
FYI, I have just uploaded the 1.03_02 dev release of Net::DNS to PAUSE which addresses this issue (among others) and which I will announce as a release candidate shortly (this evening).
On 2015-11-25 06:04:01, NLNETLABS wrote: Show quoted text
> > I am interested in how you found those packages though. > I saw your statistical analysis in RT#108914. > Is that how you found them? >
The workflow is approximately like this: * wait for a new fail report on my smoker machines * check if there already similar reports at matrix.cpantesters.org or analysis.cpantesters.org available; if not, then try to generate more on my smoker machines * if there's evidence that the problem is caused by an upstream module -> find modules depending on this upstream module (e.g. by checking https://metacpan.org/requires/distribution/ for 1st level or http://deps.cpantesters.org/depended-on-by.pl for recursive dependencies) * run all these modules/distributions with the latest upstream module version, preferably already filtered to the modules which usually generate PASS reports on the smoker machine * for the freshly failing modules either I check the test results per eyeball or test the module with more perl versions on different systems to get more reports. If a number of reports are generated, then I can run the statistical analysis script (a thin wrapper around the CPAN module CPAN::Testers::ParseReport) * finally, file an issue at the upstream module