aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman/Queue (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-04-06The Switchboard.finish() method now logs the text of the exception whenMark Sapiro1-3/+3
it fails to unlink/preserve a .bak file. (LP: 1165589)
2013-03-28Fixed a bug where the Subject: of the user notification of aMark Sapiro1-1/+1
bin/remove_members unsubscribe was not in the user's language. (LP: 1161445) Also updated BounceRunner copyright for previous change.
2013-03-28Fixed a bug where BounceRunner could create and leave behind zero lengthMark Sapiro1-1/+3
bounce-events files. (LP: 1161610)
2012-10-21IncomingRunner now logs rejected messages to the vette log.Mark Sapiro1-0/+7
2012-06-20Fixed a typo in the UPGRADING doc - bin/upgrade -> bin/update.Mark Sapiro1-0/+0
2012-03-27Fixed a possible CPU bound loop in OutgoingRunner if the attempt toMark Sapiro1-1/+2
Connect to the SMTP server throws a socket.error. (LP: #966531)
2011-09-29Eliminated the list cache from the qrunners. Indirect self-referencesMark Sapiro1-17/+12
caused lists to never be dropped from the cache which in turn caused the qrunners to grow very large in installations with many lists or multiple large lists. Bug #862683.
2011-02-07- A new mm_cfg.py setting RESPONSE_INCLUDE_LEVEL has been added to controlMark Sapiro1-15/+43
how much of the original message is included in automatic responses to email commands. The default is 2 to preserve the prior behavior of including the full message. Setting this to 1 in mm_cfg.py will include only the original headers, and 0 will include none of the original. It is recommended to set this to 0 in mm_cfg.py to minimize the effects of backscatter. Bug #265835. - A new mm_cfg.py setting DEFAULT_RESPOND_TO_POST_REQUESTS has been added to control the default for respond_to_post_requests for new lists. It is set to Yes for backwards compatibility, but it is recommended that serious consideration be given to setting it to No. Bug #266051. - A new mm_cfg.py setting DISCARD_MESSAGE_WITH_NO_COMMAND has been added to control whether a message to the -request address without any commands or a message to -confirm whose To: address doesn't match VERP_CONFIRM_REGEXP is responded to or just logged. It defaults to Yes which is different from prior behavior. Bug #410236.
2010-12-04 - Fixed a problem where an emailed command in the Subject: header with aMark Sapiro1-2/+3
non-ascii l10n of an 'Re:' prefix is ignored. Bug #685261. - Fixed a problem with approving a post by email when the body of the approval mail is base64 encoded. Bug #677115.
2009-08-05Replies to commands sent to list-request now come From: list-ownerMark Sapiro1-2/+2
instead of list-bounces.
2008-11-12Apply Heiko Rommel's patch for hashlib deprecation warnings for bug 293178.Barry Warsaw1-2/+2
I've modified the patch to improve some of the stylistic issues.
2008-06-22Another BounceRunner loop detection change (rev 1106 wasn't quite right).Mark Sapiro1-2/+4
2008-06-22 - Prepended list name to bounce log unrecognized bounce messages.Mark Sapiro1-22/+44
- Improved bounce loop detection and handling in BounceRunner.py.
2008-05-07Changed formatting for standards compliance and readability.Mark Sapiro1-2/+2
2008-04-26Made the preservation of unparseable messages conditional onMark Sapiro2-8/+14
mm_cfg.QRUNNER_SAVE_BAD_MESSAGES. Changed the queue for preservation of undequeueable entries from 'shunt' to 'bad'.
2008-02-14Added Galician translation from Frco. Javier Rial Rodrguez.Mark Sapiro1-0/+0
2008-02-14Switchboard.py - Added code to catch exceptions thrown in unpickling .bakMark Sapiro1-18/+27
files and preserve the file. This occurred when dequeue of a large entry threw MemoryError, the runner died and restarted, and then unpickling the .bak threw another MemoryError.
2008-01-02Switchboard.py - Moved the counting of the number of recoveries of a .bak fileMark Sapiro1-27/+33
from the dequeue() method to the recover_backup_files() method in order to minimize added i/o.
2007-12-16Switchboard.py - Added a count to the queue entry metadata to count the numberMark Sapiro1-5/+25
of times the entry has been dequeued in a recover backup scenario. When the count reaches three, the entry is preserved to the shunt queue and the fact logged. This prevents looping on a bad entry that causes a runner crash.
2007-11-19BounceRunner.py - Fixed a mail loop if a list owner puts the list's -bouncesMark Sapiro1-3/+14
or -admin address in the list's owner attribute (1834569).
2007-11-09Fixed Mailman/Queue/CommandRunner.py to decode a quoted-printable or base64Mark Sapiro1-2/+2
encoded message part.
2007-10-04/cygdrive/c/MM_bzr/log.txtMark Sapiro1-4/+16
2007-06-22Scrubber.py - Cleaned up a few loose ends and incomplete things left after theMark Sapiro1-4/+7
previous commit. - Normalized a couple more 'URL:'. - Improved handling of None payloads. - Cleaned up a few charset coercions. OutgoingRunner.py - Made probe bounce processing and queuing of bounces conditional on having some permanent failure(s).
2007-05-08- CGI/admin.pymsapiro2-17/+46
The email address which forms a part of the various CGI data keys in the admin membership list is now urllib.quote()ed. This allows changing options for and unsubbing an address which contains a double-quote character. - CGI/admindb.py Added additional test to not display "Database Updated ..." when coming from the login page. - CGI/roster.py, HTMLFormatter.py Changed to show hidden members when authorization is site or list's admin or moterator password. Patch 1587651. - Defaults.py.in, Handlers/Cleanse_DKIM.py Added a new REMOVE_DKIM_HEADERS Defaults.py/mm_cfg.py setting (default = No) to control removing dkim/domainkey signatures from posts and mail to -owner. - Handlers/Decorate.py, Handlers/Scrubber.py Changed to preserve format=flowed and delsp=yes in the Content-Type: of the body when adding header/footer and when scrubbing attachments and to remove trailing spaces from the header/footer lines so they won't be flowed. Bug 1495122. Fixed a scrubber issue where the i18n translated 'next part' separator can be garbled if the list charset is different from the message. - Queue/Runner.py. Queue/Switchboard.py Now that we have .bak queue entries for recovery, it is no longer the case that an unparseable message is lost. In this case, and in case of other exceptions when dequeueing, I added a preservation feature to move the .bak file to qfiles/shunt as a .psv file and write an appropriate log entry. It is also possible for an attempt to shunt a message to fail. One example that occurred in practice (bug 1656289) was caused by a huge message that threw a MemoryError in processing and then threw another MemoryError in the attempt to pickle the message for the shunt queue. In this case as well, I log and attempt to preserve the original queue entry by renaming.
2006-11-17Delete the .bak file from the queue for an unparseable message.msapiro1-0/+1
2006-09-01A much improved release script, which now knows about Subversion (though isn'tbwarsaw1-1/+0
yet ready to work from the trunk). Also, get rid of all the obsolete .cvsignore directories, they're no longer needed. Almost ready for 2.1.9rc1!
2006-07-23- Switchboard.py Changed "while key in times.keys():" tomsapiro1-1/+1
"while times.has_key(key):" for execution efficiency while maintaining Python 2.1 compatibility.
2006-07-22- Switchboard.py Added missing newline at EOF.msapiro1-1/+1
2006-07-22- bin/unshuntmsapiro2-12/+40
- Queue/Runner.py - Queue/Switchboard.py Backported the gfiles backup changes from the trunk. The following comments are from the trunk checkin. Note that the test cases are not added. Added robustness to Switchboards and Runners so that if a runner crashes uncleanly (e.g. segfaults the Python interpreter), messages being processed will not be lost. The vulnerability, ideas, and patches are credited to Richard Barrett and Mark Sapiro. Their original work was modified by Barry for this commit and any bugs are his fault. The basic idea is that instead of unlinking a .pck file in dequeue(), the file is renamed to a .bak file. The Switchboard grows a finish() method which then unlinks the .bak file. That class's constructor also grows a 'restore' argument (defaulting to false), which when true moves all .bak files it finds in its hash space to .pck, thereby restoring a file lost while "in flight". This relies on the fact that even with multiple qrunners, exactly one process will be responsible for one hash space slice, so it's never possible (under normal operation) for a .bak file to be renamed to .pck by some other process. Test cases for both the new Switchboard behavior and the use of that by Runner subclasses has been added. There are two things to watch out for, either of which may require some additional changes. There is some small potential to duplicate messages in various queues, if say 'mailmanctl' were improperly started more than once by a site admin. This usually won't happen unless an admin is overly eager with the mailmanctl -s switch, so we can chalk this one up to operator error. I'm not sure what more we can do about that. There's also a possibility that if we're processing a message that continually causes the Python interpreter to crash, we could end up duplicating messages endlessly. This is especially troublesome for the Outgoing runner which could conceivably cause a mail flood. I consider this the more critical issue to defend against, probably by adding a numbering scheme to the .bak file names and refusing to restore a .bak file more than say 3 times without human intervention.
2006-07-09 - Switchboard.py - Closed very tiny holes at the upper ends of queuemsapiro1-5/+13
slices that could result in unprocessable queue entries. Improved FIFO processing when two queue entries have the same timestamp.
2006-03-09Add test in BounceRunner for non-fatal, VERPed bounce. Bug 1421285.msapiro1-1/+5
2006-03-01Changed BouncerAPI.py to return Stop from a Bouncer and changedmsapiro1-0/+3
BounceRunner.py to discard the bounce when Stop returned. Changed DSN.py to recognize Action: headers with comments. Changed Qmail.py to recognize an observed different starting string.
2006-02-05Set umask for creation of bounce-events queue file.msapiro1-3/+8
2006-02-03add OverflowError in exceptions. (CVE-2005-4153 related but not DoS)tkikuchi1-1/+1
2005-08-27FSF office has moved to 51 Franklin Street.tkikuchi14-14/+14
2005-05-01prepare_message(): Fixed typo.bwarsaw1-2/+2
2005-02-12Request from Brad Knowles. We need subject prefix strippedtkikuchi1-4/+7
from the posts from mailling list for gatewaying to nntp.
2004-10-31[ 1008983 ] qrunner w/ multiple slices crashing.tkikuchi1-1/+1
2004-10-10proper lang data is set in msg['data']tkikuchi1-4/+4
2004-09-23[ 873035 ] subject handling in -request mailtkikuchi1-1/+3
more precautions to assert the command should be in 'us-ascii' and more errors.
2004-05-15_oneloop(): Switchboard.dequeue() can't really return Nones for msg or msgdatabwarsaw1-25/+29
any more (they were error signals in the previous switchboard implementation), so simplify the loop. We can't have 'lost data files'.
2004-02-22__repr__(): Added for better logging.bwarsaw1-1/+4
2004-02-22Much refactoring to improve bounce processing. The basic change moves thebwarsaw1-63/+41
queuing of bounce events out of the process's memory and into a 'bounce event' file, essentially consisting of a stream of pickles. Every once in a while the qrunner wakes up and processes the event file, which is named to be specific to each qrunner instance. The actually processing is factored out into a mixin class which is now subclassed by both the BounceRunner and OutgoingRunner classes (since the latter has to handle SMTP rejects as bounces). Specific changes here include: OutgoingRunner: Use BounceMixin as a base class. We can now get rid of the whole _permfailures and _permfail_counter stuff since we'll just use the mixin class as the basic logic for bounce handling. _dispose(): Simplified since we can just use _queue_bounces() when a message is rejected at SMTP time, although if that triggers a probe, the attached message will be the one for which delivery was attempted since there really isn't any bounce. Also, make this method handle probe bounces.
2004-02-22Much refactoring to improve bounce processing. The basic change moves thebwarsaw1-57/+119
queuing of bounce events out of the process's memory and into a 'bounce event' file, essentially consisting of a stream of pickles. Every once in a while the qrunner wakes up and processes the event file, which is named to be specific to each qrunner instance. The actually processing is factored out into a mixin class which is now subclassed by both the BounceRunner and OutgoingRunner classes (since the latter has to handle SMTP rejects as bounces). Specific changes include: REGISTER_BOUNCES_EVERY: Promote to a Defaults.py.in variable. BounceMixin: Mixin class for handling the basics of bounce event queuing, periodic processing, and registering, as well as cleanup. It also contains a _probe_bounce() method for handling bounces of the probe message (which cause an immediate disable). BounceRunner: Add BounceMixin as a base class.
2004-02-10enqueue(), dequeue(), files(): Implementation of new, more efficient,bwarsaw1-226/+37
one-file-per-queued-message architecture. The message object and metadata dictionary are now written to the same .pck file -- in that order -- instead of to separate files which were more complicated to manage. dequeue() especially simplifies considerably. Also, get rid of the special _Switchboard hack, as well as the MarshalSwitchboard, ASCIISwitchboard, and BSDDBSwitchboard implementations. Also get rid of the DumperSwitchboard class.
2004-02-10_dispose(), verp_probe(): Add logic to parse and handle probe bounce verps.bwarsaw1-1/+55
2004-01-23_dispose(): Fix typo in comparison to site-list owner address. Fix given bybwarsaw1-2/+2
SHIGENO Kazutaka.
2003-12-01Results.__init__(): It's possible for the Header functions to raise abwarsaw1-4/+9
HeaderParseError, so if that happens just ignore the Subject header for command purposes.
2003-12-01Fix a small comment bug.bwarsaw1-1/+1
2003-11-21copyright years.bwarsaw1-1/+1