[Mailman-Developers] Re: [Mailman-Users] Big problems with stale lockfiles on large list...
Barry A. Warsaw
barry at digicool.com
Thu May 3 21:26:38 CEST 2001
>>>>> "BAW" == Barry A Warsaw <barry at digicool.com> writes:
BAW> So the code in admin.py looks something like:
| def main():
| ...
| mlist = MailList.MailList(listname, lock=0)
| ...
|
| def sigterm_handler(signum, frame, mlist=mlist):
| mlist.Unlock()
|
| mlist.Lock()
| try:
| signal.signal(signal.SIGTERM, sigterm_handler)
| ...
| mlist.Save()
| finally:
| mlist.Unlock()
I think this code isn't quite right. I think to be totally safe, you
want sigterm_handler() to sys.exit(0) after the call to
mlist.Unlock(). Otherwise, depending on race conditions, after
unlocking the list you could still enter Save(), which would fail
because it would first try to refresh a lock you no longer own.
I'll work up a proper patch to Mailman 2.0.4 and post it to SF for you
to try. Or you could modify your patched version and test it in the
meantime.
-Barry
More information about the Mailman-Users
mailing list