[Mailman-Developers] can't use mailmanctl -s start

Barry A. Warsaw barry@zope.com
Wed, 9 Jan 2002 23:02:43 -0500

>>>>> "F" == Fil  <fil@rezo.net> writes:

    F> I don't know how to properly set up my system so that mailman
    F> restarts after a crash. I've just experienced one a few minutes
    F> ago, and here's the situation

This is a tricky bit of code, where it's trying to transfer ownership
of a lock file from the parent to a child process.  I thought the code
was race condition free, but it's very possible I've overlooked
something.  I'll stare at the code and try to reproduce it.

    | # /home/mailman/bin/mailmanctl -s start
    | Starting Mailman's master qrunner.
    | Traceback (most recent call last):
    >> le "/home/mailman/bin/mailmanctl", line 492, in ?  main() le
    >> "/home/mailman/bin/mailmanctl", line 364, in main
    >> lock._transfer_to(pid) le "/home/mailman/Mailman/LockFile.py", line
    >> 357, in _transfer_to os.link(self.__lockfile, self.__tmpfname)
    F> OSError: [Errno 2] No such file or directory

Note that it's not choking on the pid file, it's choking on the lock
file that the parent is supposed to own a lock on.

    F> So the process has failed but is still running?

Probably the child is still running, but the parent threw the
exception.  The child ought to be blocked in the _take_possession()
call, and there should be no locks/master-qrunner lockfile.

    F> I've got a /etc/init.d/mailman script that just does not much
    F> more than call /home/mailman/bin/mailmanctl start

Are you using misc/mailman as your init.d script?  (I don't think it
enters into the picture here).

    F> (Using the most recent CVS version, I prefer to post this to
    F> the -dev list)

The right thing to do!

I'll investigate some more.