summaryrefslogtreecommitdiff
path: root/Mailman/bin/unshunt.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Bite the bullet: rename the Mailman package to mailman.Barry Warsaw2008-02-271-75/+0
|
* PEP 292 style, $-strings are used by the translation service everywhere now.Barry Warsaw2008-02-181-2/+0
| | | | No more %-strings. Kill off all __i18n_templates__ hacks.
* Tweak copyright years.Barry Warsaw2008-02-071-1/+1
|
* Reorganize the qrunner infrastructure. First, the package has been renamedBarry Warsaw2007-09-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | from Mailman.Queue to Mailman.queue (note the case change to be more PEP 8 compliant). The Switchboard and Runner classes have been moved into the package __init__.py and the previous class modules have been removed. The switchboard cache is removed; I don't think it was ultimately buying us much. Now, just import the Switchboard class and instantiate it directly. Added an IRunner interface. Renamed the ArchRunner to ArchiveRunner. bin/qrunner and bin/mailmanctl are updated accordingly. For the former, it no long accepts -r=All to run all qrunners. You can still use the short name (e.g. --runner=incoming) to run the built-in queue runners, but this design will eventually allow for plugin qrunners by allowing them to be run specifying the full package path to the class. It also now accepts a leading dot to indicate a qrunner class relative to the Mailman.queue package.
* Update copyright years.bwarsaw2007-01-191-1/+1
|
* Another milestone: you can now post to lists. Converted the following to usebwarsaw2006-09-251-4/+8
| | | | | | | | the new configuration object: admin, admindb, bounces, confirm, inject, join, leave, owner, post, request, unshunt, version. Also change MailList.GetScriptURL() to return the list's fully qualified name in links.
* - Mailman/bin/unshunt.pymsapiro2006-07-161-2/+2
| | | tosb.finish() call is the wrong switchboard. Changed to sb.finish().
* Added robustness to Switchboards and Runners so that if a runner crashesbwarsaw2006-07-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Move arch, mmsitepass, and unshunt to the Mailman.bin package and rewrite tobwarsaw2006-04-281-0/+69
use optparse. Update newlist and rmlist to get their version string entirely from mm_cfg.MAILMAN_VERSION instead of having to build that string up each time. Fix the symlink source in the Makefile.in. Remove b4b5-archfix entirely.