You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@spamassassin.apache.org by bu...@bugzilla.spamassassin.org on 2012/06/17 21:49:47 UTC

[Bug 6808] New: AsyncLoop and Perl 5.16.0

https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6808

          Priority: P2
            Bug ID: 6808
          Assignee: dev@spamassassin.apache.org
           Summary: AsyncLoop and Perl 5.16.0
          Severity: normal
    Classification: Unclassified
                OS: Linux
          Reporter: software+spamassassin@kd6lvw.ampr.org
          Hardware: All
            Status: NEW
           Version: 3.3.2
         Component: Plugins
           Product: Spamassassin

Use of uninitialized value in string ne at
/usr/local/lib/perl5/site_perl/5.16.0/Mail/SpamAssassin/AsyncLoop.pm line 173.
Use of uninitialized value in string ne at
/usr/local/lib/perl5/site_perl/5.16.0/Mail/SpamAssassin/AsyncLoop.pm line 174.
plugin: eval failed: oops, no key at
/usr/local/lib/perl5/site_perl/5.16.0/Mail/SpamAssassin/AsyncLoop.pm line 174.

No Errors under perl 5.14.2.  These appeared immediately after upgrading my
perl interpreter to 5.16.0.  Apparently, the newest perl version does not like
the code that SA has.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 6808] AsyncLoop and Perl 5.16.0

Posted by bu...@bugzilla.spamassassin.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6808

--- Comment #3 from Mark Martinec <Ma...@ijs.si> ---
Created attachment 5078
  --> https://issues.apache.org/SpamAssassin/attachment.cgi?id=5078&action=edit
AsyncLoop.pm: don't warn on undef

> $ent->{id}   or die "oops, no id";
> $ent->{key}  or die "oops, no key";
> $ent->{type} or die "oops, no type";

I applied a reshuffled variant of the above, thanks!
(the {id} could potentially be 0, so I tried to stay on the safe side)


trunk (3.4):
Bug 6808: AsyncLoop and Perl 5.16.0
  Sending lib/Mail/SpamAssassin/AsyncLoop.pm
Committed revision 1354161.


So this quenches a warning, but does not address how this could
happen at all. These three items are supposed to be always there.


> Surprisingly this has been silently working since apparently "" eq undef
> in perl 5.8.8
> /usr/bin/perl5.8.8 -e 'my $foo; print "true\n" if $foo ne ""'

I don't think there has been any change in this area with more
recent version of perl:  the undef has always been equal to "".


Now back to the original issue:

> No Errors under perl 5.14.2.  These appeared immediately after upgrading my
> perl interpreter to 5.16.0.  Apparently, the newest perl version does not
> like the code that SA has.

No idea. It works fine here under 5.16.0.

Just guessing: perhaps an issue with a module Net::DNS, or with
a DNS resolver not retaining a request id in its reply.

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 6808] AsyncLoop and Perl 5.16.0

Posted by bu...@bugzilla.spamassassin.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6808

Todd Rinaldo <to...@cpanel.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |toddr@cpanel.net

--- Comment #1 from Todd Rinaldo <to...@cpanel.net> ---
Relevant code. The first die is line 173:


sub start_lookup {
  my ($self, $ent, $master_deadline) = @_;

  die "oops, no id"   unless $ent->{id}   ne '';
  die "oops, no key"  unless $ent->{key}  ne '';
  die "oops, no type" unless $ent->{type} ne '';

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 6808] AsyncLoop and Perl 5.16.0

Posted by bu...@bugzilla.spamassassin.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6808

--- Comment #2 from Todd Rinaldo <to...@cpanel.net> ---
I assume these are being passed in undef. 

If 0 is invalid, the simplest fix is just this right?

$ent->{id}   or die "oops, no id";
$ent->{key}  or die "oops, no key";
$ent->{type} or die "oops, no type";

Surprisingly this has been silently working since apparently "" eq undef in
perl 5.8.8

/usr/bin/perl5.8.8 -e 'my $foo; print "true\n" if $foo ne ""'

-- 
You are receiving this mail because:
You are the assignee for the bug.

[Bug 6808] AsyncLoop and Perl 5.16.0

Posted by bu...@bugzilla.spamassassin.org.
https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6808

Mark Martinec <Ma...@ijs.si> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|Undefined                   |3.4.0

--- Comment #4 from Mark Martinec <Ma...@ijs.si> ---
Closing for now. Please re-open if the problem re-occurs with SpamAssassin
3.4.0
(or the current trunk). Related code has been rewritten with changes in Bug
6884.

-- 
You are receiving this mail because:
You are the assignee for the bug.