[Mailman-Users] Mailman locking up, seems to be Spamassassin related
Richard Barrett
r.barrett at openinfo.co.uk
Tue Jun 27 13:41:01 CEST 2006
On 27 Jun 2006, at 10:33, Chris Croome wrote:
> Hi
>
> One a CentOS 4 box, running Mailman that comes with the distro, I'm
> seeing locks up every now and then -- all the lists on the machine
> stop
> processing mail.
>
> When this happens a restart gets things moving again.
>
> This is the error that is written to /var/log/mailman/error:
>
> Jun 26 12:04:58 2006 (28052) Uncaught runner exception: (4,
> 'Interrupted system call')
> Jun 26 12:04:58 2006 (28052) Traceback (most recent call last):
> File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 111, in
> _oneloop
> self._onefile(msg, msgdata)
> File "/usr/lib/mailman/Mailman/Queue/Runner.py", line 167, in
> _onefile
> keepqueued = self._dispose(mlist, msg, msgdata)
> File "/usr/lib/mailman/Mailman/Queue/IncomingRunner.py", line
> 130, in _dispose
> more = self._dopipeline(mlist, msg, msgdata, pipeline)
> File "/usr/lib/mailman/Mailman/Queue/IncomingRunner.py", line
> 153, in _dopipeline
> sys.modules[modname].process(mlist, msg, msgdata)
> File "/usr/lib/mailman/Mailman/Handlers/SpamAssassin.py", line
> 76, in process
> score, symbols = check_message(mlist, str(msg))
> File "/usr/lib/mailman/Mailman/Handlers/SpamAssassin.py", line
> 62, in check_message
> res = connection.check(spamd.SYMBOLS, message)
> File "/usr/lib/mailman/Mailman/Handlers/spamd.py", line 123, in
> check
> response = fp.readline()
> File "/usr/lib/python2.3/socket.py", line 338, in readline
> data = self._sock.recv(self._rbufsize)
> error: (4, 'Interrupted system call')
>
> Jun 26 12:04:58 2006 (28052) SHUNTING: 1151298261.692024
> +45c6f4028caac564c9880d1ac3f73dca4b88bfb1
>
> Mailman has been set up to work with Spamassassin using the
> instructions
> here:
>
> http://www.jamesh.id.au/articles/mailman-spamassassin/
>
> As far as I can tell the only thing that this involves is this line
> being added to /etc/mailman/mm_cfg.py:
>
> GLOBAL_PIPELINE.insert(1, 'SpamAssassin')
>
> (I didn't set this machine up however...).
>
> Does anyone have any ideas what could be going wrong here and what
> might
> be don't to fix it...?
>
I do not use this myself but a quick look at the code available at
the site you reference above shows that the addition to the Mailman
pipeline is synchronously passing the message to an external/
separate process for checking and then awaiting its response.
That pipeline is operated by the IncomingRunner of which there is
usually only one such queue runner. Hence if there is any delay in
the external SpamAssassin processing a message all other incoming
messages will just wait in the queue.
The code communicating with the checking process does not appear to
protect itself with any timeouts so if the external process fails to
respond for prolonged periods then your Mailman system will simply
appear to lock up as far as processing incoming messages is
concerned. In effect it will lockup the entire Mailman system as
without new messages to process, the other queue runners have nothing
to do.
Personally, I would not adopt this approach to running SpamAssassin.
But if I were to use this approach I would re-engineer the queue
runner/pipeline to allow multiple instances of the external checking
process to be utilised and add some timeout protection.
But better, I would integrate SpamAssassin into the MTA delivering to
the Mailman server. We use the latter approach so that unchecked mail
never gets near Mailman (or any other MTA/MDA/MUA on our site). This
should give much higher levels of concurrency when checking incoming
than this serial approach with Spamassassin in the Mailman pipeline.
This is in fact what we do.
Incidentally, we also use this check all the mail going off-site from
our systems via the MTA so that we can avoid any infected machine in
our network passing its problem on to the outside world.
Maybe you should discuss the problem with the author of the
Spamassassin integration code.
> Thanks
>
> Chris
>
> --
> Chris Croome <chris at webarchitects.co.uk>
> web design http://www.webarchitects.co.uk/
> web content management http://mkdoc.com/
More information about the Mailman-Users
mailing list