[Mailman-Developers] traceback (still due to the BounceRunner)

Fil fil@rezo.net
Fri, 29 Mar 2002 11:15:59 +0100


Hello, I've sent yesterday one of these "big bounce list" message, and the
BounceRunner is still processing bounces, 100% CPU for hours... Not a
problem if the new locking scheme worked, but, unfortunately, it doesn't
when the qfiles/bounces/ directory is full : the BounceRunner doesn't know
how to pause from time to time.

>From what I see it needs about 5-6 seconds (on a 50000 subscribers' list) to
process and register one bounce. So it really shouldn't process more than 4
in a row (ie in a minute) if we want the lockfile to be released before 30
secs. However that would mean processing 4 bounces per minute. If you have
50 000 bounces, that's 12 500 minutes... not good. I don't know what to
suggest, except maybe to make a BounceRunner preprocessor that doesn't read
or write the list files, but just extracts the bounce information and gets
rid fast of the bounce files. Then for the "real" BounceRunner to process
the bounce information already computed would be very fast.




Traceback (most recent call last):
  File "/var/local/mailman/Mailman/MailCommandHandler.py", line 273, in
+ParseMailCommands
    self.__dispatch[cmd](args, line, msg)
  File "/var/local/mailman/Mailman/MailCommandHandler.py", line 727, in
+ProcessConfirmCmd
    results = self.ProcessConfirmation(args[0], msg)
  File "/var/local/mailman/Mailman/MailList.py", line 967, in
+ProcessConfirmation
    data = Pending.confirm(cookie)
  File "/var/local/mailman/Mailman/Pending.py", line 94, in confirm
    lock.lock(timeout=30)
  File "/var/local/mailman/Mailman/LockFile.py", line 292, in lock
    raise TimeOutError
TimeOutError



-- Fil