Yesterday I found that the RPM database on my Fedora Core 6 linux system’s were corrupted and that the regularly running update process was failing (without telling me, unfortunately).
After fixing the RPM database problem (rm -f /var/lib/rpm/__db.* && rpm -vv --rebuilddb
) and running the update (yum update), I found that SpamAssassin’s update process wasn’t working anymore.
root@rivendell ~]# sa-update
Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm line 30.
Apparently one of the updates that were applied in the mass update caused SpamAssassin to break.
The same problem occurred when I tried to test the SpamAssassin rules.
root@rivendell ~]# spamassassin --lint
Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Scalar/Util.pm line 30.
A bit of research turned up this link.
Luckily the fix was fairly easy … just update the Scalar-List-Utils CPAN package …
perl -MCPAN -e 'install "G/GB/GBARR/Scalar-List-Utils-1.18.tar.gz"
… and everything worked fine again.
Excellent! Not only did this solve the problem, but it was the first Google page I found with the solution (the InterWorx link was after yours). Two notes – a refinement and an “enhancement”:
1) I’m running perl 5.8.5 (and CentOS 4.6, and SA 3.2.3, for what that’s worth), and going to Scalar-List-Utils-1.18 was a downgrade, so I had to force the installation.
2) After installing this fix, I re-ran sa-update… which was silent. I’m never sure if that’s good news or bad, so I recommend “sa-update -D” to turn on debugging, which produces an assuring number of messages, confirming that it really is working. It also showed me a bunch of missing (optional) modules, which I’ll now install!
Good find!
Thanks a lot for this, although 1.18 is no longer the current version of Scalar::Utils running this on my RHEL4 box and then reloading CPAN fixed the problems I was having with updating a load of other modules. 🙂
Thanks for the fix. In case someone else comes looking, this also fixes another related problem. My amavisd-new install relies on spamassassin. When trying to restart amavisd-new after a recent update, I got this:
[root@quad modules]# /etc/init.d/amavisd restart
Shutting down amavisd: ERROR: MISSING REQUIRED BASIC MODULES:
Compress::Zlib
BEGIN failed–compilation aborted at /usr/sbin/amavisd line 171.
[FAILED]
The fix on this page fixes the problem as well.