Centos 5 with Perl 5.10.0 ConfigDefs.pl "strict refs" error
Hostmaster
Hostmaster at computerservicecentre.com
Mon Jan 7 13:03:48 GMT 2008
Hi MailScanner users,
I have a fresh-built Centos 5 box, on which I have compiled Perl 5.10.0 from
source, and MailScanner 4.66.5 installed from RPM. Perl was upgraded after
MailScanner was installed. I know RPM should be an "all or nothing" decision
The problem I have is that I noticed that the processes MailScanner was forking
when starting where dying instantly, and when running MailScanner --lint, it
dies with the error:
"Can't use string ("/var/spool/mqueue.in") as an ARRAY ref while "strict refs"
in use at /usr/sbin/MailScanner line 441."
"/var/spool/mqueue.in" is not my incoming directory, "/var/spool/exim.in" is,
and the mqueue.in directory does not exist. The correct incoming directory is
set in /etc/MailScanner/MailScanner.conf.
Using "locate MailScanner |xargs grep "mqueue.in" and some luck, I managed to
find that the mqueue reference was coming from
"/usr/lib/MailScanner/MailScanner/ConfigDefs.pl", so I hacked the "inqueuedir"
variable to point at the correct directory, but it doesn't change the error,
apart from the path within string().
My first thought was a missing perlmod dependency for MailScanner after the
upgrade of Perl, however MailScanner -v shows:
This is CentOS release 5 (Final)
This is Perl version 5.010000 (5.10.0)
This is MailScanner version 4.66.5
Module versions are:
1.00 AnyDBM_File
1.23 Archive::Zip
1.08 Carp
1.119 Convert::BinHex
2.27 Date::Parse
1.01 DirHandle
1.06 Fcntl
2.76 File::Basename
2.11 File::Copy
2.01 FileHandle
2.04 File::Path
0.20 File::Temp
0.92 Filesys::Df
1.35 HTML::Entities
3.56 HTML::Parser
2.37 HTML::TokeParser
1.23_01 IO
1.14 IO::File
1.13 IO::Pipe
2.02 Mail::Header
1.88 Math::BigInt
3.07_01 MIME::Base64
5.425 MIME::Decoder
5.425 MIME::Decoder::UU
5.425 MIME::Head
5.425 MIME::Parser
3.07 MIME::QuotedPrint
5.425 MIME::Tools
0.11 Net::CIDR
1.13 POSIX
1.19 Scalar::Util
1.80 Socket
1.4 Sys::Hostname::Long
0.24 Sys::Syslog
1.9711 Time::HiRes
1.02 Time::localtime
Optional module versions are:
1.38 Archive::Tar
0.22 bignum
2.03 Business::ISBN
1.17 Business::ISBN::Data
0.17 Convert::TNEF
1.08 Data::Dump
1.816_1 DB_File
1.14 DBD::SQLite
1.601 DBI
1.15 Digest
1.01 Digest::HMAC
2.36_01 Digest::MD5
2.11 Digest::SHA1
1.00 Encode::Detect
0.17011 Error
0.21 ExtUtils::CBuilder
2.18_02 ExtUtils::ParseXS
0.44 Inline
1.08 IO::String
1.07 IO::Zlib
2.23 IP::Country
missing Mail::ClamAV
3.002003 Mail::SpamAssassin
v2.005 Mail::SPF
1.999001 Mail::SPF::Query
0.21 Math::BigRat
0.280801 Module::Build
0.20 Net::CIDR::Lite
0.62 Net::DNS
v0.003 Net::DNS::Resolver::Programmable
missing Net::LDAP
4.007 NetAddr::IP
1.94 Parse::RecDescent
missing SAVI
3.06 Test::Harness
1.22 Test::Manifest
2.0.0 Text::Balanced
1.35 URI
0.74 version
0.66 YAML
And running MailScanner in debug mode shows:
In Debugging mode, not forking...
Trying to setlogsock(unix)
SpamAssassin temp dir = /var/spool/MailScanner/incoming/SpamAssassin-Temp
Can't use string ("/var/spool/exim.in") as an ARRAY ref while "strict refs" in
use at /usr/sbin/MailScanner line 1385.
An strace of MailScanner while in debug mode shows the error:
"open("/root/.spamassassin/auto-whitelist.lock.mailscannerdevel.local.22409",
O_WRONLY|O_CREAT|O_EXCL|O_LARGEFILE, 0700) = 9
ioctl(9, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbff8cd58) = -1 ENOTTY (Inappropriate
ioctl for device)"
before it dies and writes out the error about line 1385, however I am not sure
what this means or even if it is relevant, and the references I can find for
"perl +'Inappropriate ioctl for device'" on the web don't really help. Locking
method in the MailScanner.conf is set to posix, as Exim is in use. Perl was
built to use perlio method for locks. I'm wondering whether the Filesys module
is doing or expecting something which MailScanner can't/isn't handle/ing?
Any hints would be greatly appreciated, but if the answer is "don't use perl
5.10.0 yet" or "you must have screwed up your compile of perl", that's fine I'll
roll back, but I am keen to try and fix this problem, as the reason for the
upgrade was to see whether the perl core improvements in 5.10.0 made much of a
difference to MailScanner performance in comparison to our live boxes running
5.8.0.
Best Regards,
Richard Garner (A+, N+, AMBCS, MOS-O)
All E-Mail communications are monitored in addition to being content checked for malicious codes or viruses. The success of scanning products is not guaranteed, therefore the recipient(s) should carry out any checks that they believe to be appropriate in this respect.
This message (including any attachments and/or related materials) is confidential to and is the property of Computer Service Centre, unless otherwise noted. If you are not the intended recipient, you should delete this message and are hereby notified that any disclosure, copying, or distribution of this message, or the taking of any action based on it, is strictly prohibited.
Any views or opinions presented are solely those of the author and do not necessarily represent those of Computer Service Centre.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.mailscanner.info/pipermail/mailscanner/attachments/20080107/11217075/attachment.html
More information about the MailScanner
mailing list