4.19. I get "Could not acquire qrunner lock" in ~mailman/logs/qrunner...

qrunner is a little program that processes the queued list mail, i.e. sends it to your MTA. It is invoked by cron, usually once a minute. Before it starts up, it checks for a lock file in ~mailman/locks, because only one qrunner may run at a time (otherwise, messages might be sent out more than once or there could even be deadlocks).

If there is none, it assumes that no other qrunner is running, creates a lock for itself and begins to work through the files in the queue (~mailman/qfiles). If there is a lock, it aborts and prints said error message.

There are two possible reasons for this to happen:

(1) The queue is large, or sending the mail takes long, so the old qrunner has not yet finished when cron starts a new one. This is normal behaviour.

(2) A qrunner has crashed, and was not able to remove the lock it had acquired, or qrunner is choking on some message forever. This is a problem, because no list mail will be delivered until you clean up.

Marc Merlin suggested on mailman-users to check if a qrunner is active, for example by doing "ps aux|grep qrunner". (But this of course often finds its own grep process! Better is to use the "pidof" command.)

If no, you can safely delete the qrunner lock file in ~mailman/locks/ by hand. If yes, he recommends to do a "strace -f -p <process-id of qrunner>" to see what it's doing and whether it is stuck with a certain message. If so, remove the offending message from the queue, kill qrunner and remove the lock.

This should rarely if ever happen with Mailman releases > 2.0.9. If you run into this problem frequently, you should probably ask for assistance on the mailman-users list.

Converted from the Mailman FAQ Wizard

This is one of many Frequently Asked Questions.

MailmanWiki: DOC/4.19 I get "Could not acquire qrunner lock" in ~mailman-logs-qrunner... (last edited 2015-01-31 02:36:58 by msapiro)