| Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
Since there's still problems with locking, I added a little better
diagnostic to the one os.unlink() exception I've been getting a lot.
This should be removed when fixed.
|
|
module (we should really create a mail driver similar to the CGI
driver).
|
|
SendTextToUser() no longer has a raw argument and no longer calls
wrap() in any way. maketext() has a raw argument, default to zero,
which if true skips the call to wrap() on the interpolated text.
|
|
|
|
files, so individual new files don't have to be explicitly added to
the TEMPLATES list.
(bounce.txt): New template for admin email on excessive bounces
(reenable.txt): Sub-template for bounce.txt
(refuse.txt): Template for submission refusal email notice
|
|
|
|
vars.
|
|
wait() within the send loop every PAUSE_FREQUENCY users, in order to
wait for the deliver process to finish queuing up the messages.
Also, the password message text was getting mangled by the word
wrapping in SendTextToUser. I added 'raw=1' to the call. (I should
say that i really don't think that SendTextToUser should be in the
business of wrapping or filling text - i thought Utils.maketext, when
deliberately applied, was going to take care of all that? Ah - i bet
i'm just behind in my checkouts...)
|
|
|
|
|
|
driver.
|
|
Mailman.Logging package
|
|
|
|
errors. Now all tracebacks get sent to the user as HTML *and* logged
to logs/error, although the format of the output is slightly different
(not HTML in the latter case).
Some rearranging of code, simplification, etc.
|
|
|
|
StampedLogger is carried over from before, with some changes.
Logger used to be in Mailman.Utils
MultiLogger is new, it is used to log identical message to a list of
loggers supporting the write interface of file-like objects (e.g. a
Logger or sys.__stdout__).
|
|
deliver script. Deliver is all important, and i don't want to screw
it up. I've tested it a bit, but would like your scrutiny before i
put something like it in production!]
I implemented a finite loop around all os.fork()s in the script, to
retry every 15 seconds, up to five times, when error.EAGAIN (resource
temporarily unavailable) is hit.
In the process i've encapsulated the script code in functions,
including a function "forker()" (not mama_forker() - i showed some
restraint:), which takes care of the EAGAIN looping.
Here's a cron report on the error the last time mailpasswds was run:
Your "cron" job on parrot
/usr/local/bin/python /home/mailman/mailman/cron/mailpasswds
produced the following output:
Here's a sample of the traceback that
Traceback (innermost last):
File "/home/mailman/mailman/cron/mailpasswds", line 117, in ?
main()
File "/home/mailman/mailman/cron/mailpasswds", line 114, in main
MailAllPasswords(list, users)
File "/home/mailman/mailman/cron/mailpasswds", line 81, in MailAllPasswords
list.SendTextToUser(subject = subj,
File "/home/mailman/mailman/modules/mm_deliver.py", line 105, in SendTextToUser
mm_utils.SendTextToUser(subject, text, recipient, sender,
File "/home/mailman/mailman/modules/mm_utils.py", line 75, in SendTextToUser
DeliverToUser(msg, recipient, add_headers=add_headers)
File "/home/mailman/mailman/modules/mm_utils.py", line 89, in DeliverToUser
if os.fork():
os.error: (11, 'Resource temporarily unavailable')
|
|
(Previously, mailman would crash when InitTempVars() was trying to
construct the _template_dir setting by concatenating the TEMPLATE_DIR
with the None setting for self._internal_name.)
|
|
initted i discovered that the TempVars routines were not being
properly invoked. So i've created an InitTempVars method which is
responsible for:
- setting several of the '_' underscore prefixed temp vars in that
were previously in __init__()
- calling the InitTempVars() routines present in some of the base
classes - currently HTMLFormatter and Digester.
I had to make sure that the check for a specified name was properly
respected (another thing fixed - anonymous links were broken, so "l =
MailList.MailList()" wouldn't work), and convey the lock status in
properly.
John, please check my logic - i was trying to infer what you were
intending with the TempVars stuff, from what seemed to be an
incompletely implemented rationale.
Anyway, the crashes from the lack of self._mime_separator and from
trying to instantiate without a name are now alleviated.
|
|
since it's really the purview of Digester.
|
|
it was causing a password failure after a user password was
satisfactorily verified.
|
|
in comments and doc strings.
|
|
a lock at the same time. This *may* have been Barry's problem.
It should at least fix it (the os.error one), even if I'm not 100%
sure of how it is happening.
|
|
|
|
NameErrors.
|
|
interface.
MailCommandHandler.ProcessConfirmCmd(): Near the bottom of the method,
where self.AddRequest() is called on a closed list, wrap the call in a
try/except so as to catch the MMNeedApproval exception that gets
raised.
John, please verify that I'm doing this right.
|
|
|
|
|
|
|
|
names should probably be added eventually too).
|