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)

Reply via email to