Package: mailman
Version: 2.1.5-8
Severity: important
Tags: patch
Hello,
On a machine running mailman with a large number of heavily used mailing
lists, suddenly mail to one mailing list did not get processed anymore.
After investigating I found this in mailman's error log:
Sep 01 06:33:29 2005 (7385) 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 "/var/lib/mailman/Mailman/Handlers/ToDigest.py", line 91, in process
send_digests(mlist, mboxfp)
File "/var/lib/mailman/Mailman/Handlers/ToDigest.py", line 132, in
send_digests
send_i18n_digests(mlist, mboxfp)
File "/var/lib/mailman/Mailman/Handlers/ToDigest.py", line 306, in
send_i18n_digests
msg = scrubber(mlist, msg)
File "/var/lib/mailman/Mailman/Handlers/Scrubber.py", line 170, in process
dir = calculate_attachments_dir(mlist, msg, msgdata)
File "/var/lib/mailman/Mailman/Handlers/Scrubber.py", line 131, in
calculate_attachments_dir
datedir = safe_strftime(fmt, now)
File "/var/lib/mailman/Mailman/Handlers/Scrubber.py", line 115, in
safe_strftime
return time.strftime(fmt, floatsecs)
OverflowError: long int too large to convert to int
The attached patch fixes this problem.
-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.12.2-p4-uvt
Locale: LANG=nl_NL.UTF-8, LC_CTYPE=nl_NL.UTF-8 (charmap=UTF-8)
Versions of packages mailman depends on:
ii apache [httpd] 1.3.33-6 versatile, high-performance HTTP s
ii cron 3.0pl1-86 management of regular background p
ii debconf 1.4.30.13 Debian configuration management sy
ii libc6 2.3.2.ds1-22 GNU C Library: Shared libraries an
ii logrotate 3.7-5 Log rotation utility
ii pwgen 2.03-1 Automatic Password generation
ii python 2.3.5-2 An interactive high-level object-o
ii ssmtp [mail-transport-agent 2.61-2 extremely simple MTA to get mail o
ii ucf 1.17 Update Configuration File: preserv
-- debconf information excluded
--- Scrubber.py.orig 2005-09-01 11:05:28.000000000 +0200
+++ Scrubber.py 2005-09-01 11:41:33.000000000 +0200
@@ -113,7 +113,7 @@
def safe_strftime(fmt, floatsecs):
try:
return time.strftime(fmt, floatsecs)
- except (TypeError, ValueError):
+ except (OverflowError, TypeError, ValueError):
return None
@@ -142,7 +142,7 @@
}.get(parts[3], 0)
day = int(parts[4])
year = int(parts[6])
- except (IndexError, ValueError):
+ except (OverflowError, IndexError, ValueError):
# Best we can do I think
month = day = year = 0
datedir = '%04d%02d%02d' % (year, month, day)