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.