Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: SpamAssassin: devel

failed on Jenkins

 

 

SpamAssassin devel RSS feed   Index | Next | Previous | View Threaded


KMcGrail at PCCC

Aug 6, 2013, 8:10 AM

Post #1 of 4 (20 views)
Permalink
failed on Jenkins

This build failed:

https://builds.apache.org/job/SpamAssassin-trunk/8895/

Looking further, is this a Memory issue?

https://builds.apache.org/job/SpamAssassin-trunk/8895/testReport/make_test/t_spf_t/test______3/

Why are we failing on a new for DNS? Especially since I'm guessing the
next run will pass fine...

Regards,
KAM


Mark.Martinec+sa at ijs

Aug 6, 2013, 8:34 AM

Post #2 of 4 (19 views)
Permalink
Re: failed on Jenkins [In reply to]

> This build failed:
> https://builds.apache.org/job/SpamAssassin-trunk/8895/
>
> Looking further, is this a Memory issue?
>
> https://builds.apache.org/job/SpamAssassin-trunk/8895/testReport/make_test/
> t_spf_t/test______3/

I don't think it's a memory issue.

> Why are we failing on a new for DNS? Especially since I'm guessing the
> next run will pass fine...

More like a Net::DNS compatibility issue (just guessing).
What is the version of Net::DNS there?

Mark


KMcGrail at PCCC

Aug 6, 2013, 8:36 AM

Post #3 of 4 (19 views)
Permalink
Re: failed on Jenkins [In reply to]

> More like a Net::DNS compatibility issue (just guessing). What is the
version of Net::DNS there? Mark

I would expect that to consistently fail... Hmm. Here's the version info:


Aug 6 08:24:47.384 [6584] dbg: dns: is Net::DNS::Resolver available? yes
Aug 6 08:24:47.384 [6584] dbg: dns: Net::DNS version: 0.49


Mark.Martinec+sa at ijs

Aug 6, 2013, 5:10 PM

Post #4 of 4 (18 views)
Permalink
Re: failed on Jenkins [In reply to]

> Aug 6 08:24:47.384 [6584] dbg: dns: is Net::DNS::Resolver available? yes
> Aug 6 08:24:47.384 [6584] dbg: dns: Net::DNS version: 0.49

Took some effort to find a Net::DNS that old (March 2005, 8+ years),
it is no longer on CPAN.

> # Current time GMT: Tue Aug 6 08:52:22 2013
> [...]
> Aug 6 08:52:41.425 [24111] warn: spf: lookup failed:
> Can't locate object method "new" via package "Net::DNS::RR::TXT"

That's 19.4 seconds between the two timestamps.

The DNS lookup timeout in Mail::SPF::Query is 15 seconds.

The [Can't locate object method "new" via package] happens
if the module in question was not loaded (require/use).

The Net::DNS::RR loads subordinate modules on-demand
when they are needed for the first time:

sub _get_subclass {
my ($class, $type) = @_;

return unless $type and $RR{$type};

my $subclass = join('::', $class, $type);

unless ($_LOADED{$subclass}) {
eval "require $subclass";
die $@ if $@;
$_LOADED{$subclass}++;
}

return $subclass;
}

If a timeout would occur in the middle of eval "require $subclass"
(where $subclass is "Net::DNS::RR::TXT"), the eval would exit
but the $@ would be empty, so the module Net::DNS::RR::TXT
may appear to be loaded but is not.

So my guess is that resolving for a TXT record on dnsbltest.spamassassin.org
took longer than 15 seconds, and it so happened that the module
Net::DNS::RR::TXT was not yet needed / not loaded as a result of
some previous query.

A "eval...; die $@ if $@" is a commonly used idiom, but is bad;
the proper idiom is: "eval ... or die", i.e. testing for the result
of eval, not depending on the value of $@.

Mark

SpamAssassin devel RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.