You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@spamassassin.apache.org by dvogel <dv...@intercarve.net> on 2007/09/14 19:33:27 UTC
Mail log errors about PerMsgStatus.pm
I've been seeing these errors in my mail log. This is SpamAssassin version
3.2.3 running on Perl version 5.8.8. Installed via apt on debian/stable.
I've tried to `apt-get install --reinstall spamassassin spamc`, but that did
not work. Is this likely the result of a misconfiguration on my part or is
it more likely a bug in spamassassin that I should report to -dev?
Sep 14 12:51:28 moose spamd[29477]: Use of uninitialized value in
concatenation (.) or string at
/usr/share/perl5/Mail/SpamAssassin/PerMsgStatus.pm line 2669.
Sep 14 12:51:28 moose spamd[29477]: Number found where operator expected at
(eval 303) line 10, near "}
Sep 14 12:51:28 moose spamd[29477]:
Sep 14 12:51:28 moose spamd[29477]: 1"
Sep 14 12:51:28 moose spamd[29477]: (Missing operator before
Sep 14 12:51:28 moose spamd[29477]:
Sep 14 12:51:28 moose spamd[29477]: 1?)
Sep 14 12:51:28 moose spamd[29477]: rules: failed to run header tests,
skipping some: syntax error at (eval 303) line 11, near ";
Sep 14 12:51:28 moose spamd[29477]: }"
For reference, here is the function in PerMsgStatus.pm that it is
complaining about, with line numbers:
2666 sub register_plugin_eval_glue {
2667 my ($self, $pluginobj, $function) = @_;
2668
2669 my $evalstr = <<"ENDOFEVAL";
2670 {
2671 package Mail::SpamAssassin::PerMsgStatus;
2672
2673 sub $function {
2674 my (\$self) = shift;
2675 my \$plugin = \$self->{conf}->{eval_plugins}->{$function};
2676 return \$plugin->$function (\$self, \@_);
2677 }
2678
2679 1;
2680 }
2681 ENDOFEVAL
2682 eval $evalstr;
2683
2684 if ($@) {
2685 warn "rules: failed to run header tests, skipping some: $@\n";
2686 $self->{rule_errors}++;
2687 }
2688 }
--
View this message in context: http://www.nabble.com/Mail-log-errors-about-PerMsgStatus.pm-tf4444172.html#a12680362
Sent from the SpamAssassin - Users mailing list archive at Nabble.com.
Re: Mail log errors about PerMsgStatus.pm
Posted by Matt Kettler <mk...@verizon.net>.
dvogel wrote:
> I've been seeing these errors in my mail log. This is SpamAssassin version
> 3.2.3 running on Perl version 5.8.8. Installed via apt on debian/stable.
> I've tried to `apt-get install --reinstall spamassassin spamc`, but that did
> not work. Is this likely the result of a misconfiguration on my part or is
> it more likely a bug in spamassassin that I should report to -dev?
>
>
> Sep 14 12:51:28 moose spamd[29477]: Use of uninitialized value in
> concatenation (.) or string at
> /usr/share/perl5/Mail/SpamAssassin/PerMsgStatus.pm line 2669.
>
Something is corrupted about your SA install.. The PerMsgStatus.pm that
comes with 3.2.3 is only 2604 lines long.
Did you have a borked upgrade that would up leaving two
PerMsgStatus.pm's on your system in different directories?
> For reference, here is the function in PerMsgStatus.pm that it is
> complaining about, with line numbers:
>
> 2666 sub register_plugin_eval_glue {
> 2667 my ($self, $pluginobj, $function) = @_;
> 2668
> 2669 my $evalstr = <<"ENDOFEVAL";
> 2670 {
> 2671 package Mail::SpamAssassin::PerMsgStatus;
> 2672
>
>
That is not the correct code for register_plugin_eval_glue for SA 3.2.3.
It looks like the one from a 3.1.x version of SpamAssassin, as it
matches the one found in 3.1.8.
It should start off as such:
------------------------------
sub register_plugin_eval_glue {
my ($self, $function) = @_;
if (!$function) {
warn "rules: empty function name";
return;
}
# only need to call this once per fn (globally)
return if exists $TEMPORARY_EVAL_GLUE_METHODS{$function};
$TEMPORARY_EVAL_GLUE_METHODS{$function} = undef;
------------------------------
And that much is the same for both 3.2.3 and 3.2.0.