Size: 2585
Comment: Added service mailman alternatives.
|
← Revision 4 as of 2017-05-15 21:59:44 ⇥
Size: 2772
Comment: Added note about waiting a bit for qrunners to exit.
|
Deletions are marked like this. | Additions are marked like this. |
Line 27: | Line 27: |
[Errno 2] No such file or directory: '/usr/local/mailman/qfiles/bounces/1142960439.447984+fc08b5ba5bce8de3f6f63c1227ee942197f02e0d.bak'}}} | [Errno 2] No such file or directory: '/usr/local/mailman/qfiles/bounces/1142960439.447984+fc08b5ba5bce8de3f6f63c1227ee942197f02e0d.bak' }}} |
Line 33: | Line 34: |
{{{ bin/mailmanctl -s start }}} |
{{{ bin/mailmanctl -s start}}} |
Line 43: | Line 42: |
{{{ bin/mailmanctl stop }}} |
{{{ bin/mailmanctl stop}}} |
Line 47: | Line 44: |
or if you use an init.d script, do | or if you use an `init.d` script, do |
Line 49: | Line 46: |
{{{service mailman stop}}} | {{{ service mailman stop}}} |
Line 51: | Line 48: |
Then do | Then wait a minute or two for the running processes to wrap up (!OutgoingRunner in particular can take some time if it is in the process of delivering a message to a large number of recipients). Then do |
Line 53: | Line 50: |
{{{ ps -fAww |grep python }}} |
{{{ ps -fAww |grep python}}} |
Line 57: | Line 52: |
or however you spell that for your system to see what Mailman processes are still running. If you see a mailmanctl process, send it SIGTERM with | or however you spell that for your system to see what Mailman processes are still running. If you see a mailmanctl process, send it `SIGTERM` with |
Line 59: | Line 54: |
{{{ kill -TERM <pid> }}} |
{{{ kill -TERM <pid>}}} |
Line 65: | Line 58: |
{{{ bin/mailmanctl start }}} |
{{{ bin/mailmanctl start}}} |
Line 69: | Line 60: |
or with an init.d script, do | or with an `init.d` script, do |
Line 71: | Line 62: |
{{{service mailman start}}} | {{{ service mailman start}}} |
4.68. Why do I get [Errno 2] No such file or directory: referring to a qfiles .pck (or .bak) file in my error log.
From a recent post to mailman-users:
I keep receiving this error and cannot determine why. Can someone help me?
Traceback (most recent call last): File "/usr/local/mailman/bin/qrunner", line 270, in ? main() File "/usr/local/mailman/bin/qrunner", line 230, in main qrunner.run() File "/usr/local/mailman/Mailman/Queue/Runner.py", line 70, in run filecnt = self._oneloop() File "/usr/local/mailman/Mailman/Queue/Runner.py", line 99, in _oneloop msg, msgdata = self._switchboard.dequeue(filebase) File "/usr/local/mailman/Mailman/Queue/Switchboard.py", line 143, in dequeue fp = open(filename) IOError: [Errno 2] No such file or directory: '/usr/local/mailman/qfiles/bounces/1142960439.447984+fc08b5ba5bce8de3f6f63c1227ee942197f02e0d.pck'
A somewhat different log entry referring to a .bak file and with no traceback can also occur from the same underlying cause. This error can look like
Failed to unlink/preserve backup file: /usr/local/mailman/qfiles/bounces/1142960439.447984+fc08b5ba5bce8de3f6f63c1227ee942197f02e0d.bak [Errno 2] No such file or directory: '/usr/local/mailman/qfiles/bounces/1142960439.447984+fc08b5ba5bce8de3f6f63c1227ee942197f02e0d.bak'
Or, prior to Mailman 2.1.16, only the first line of the above.
The most likely cause of this is more than one qrunner processing the same slice of the same queue. This usually results from someone or some script doing
bin/mailmanctl -s start
when Mailman is already running.
You need to stop all Mailman processes and then start Mailman once only.
First, as root, do
bin/mailmanctl stop
or if you use an init.d script, do
service mailman stop
Then wait a minute or two for the running processes to wrap up (OutgoingRunner in particular can take some time if it is in the process of delivering a message to a large number of recipients). Then do
ps -fAww |grep python
or however you spell that for your system to see what Mailman processes are still running. If you see a mailmanctl process, send it SIGTERM with
kill -TERM <pid>
where <pid> is its pid from the ps output. Do this until there are no more mailmanctl processes. At this point, if there are any qrunner processes left, do the same for them until there are no Mailman processes running at all. Then do
bin/mailmanctl start
or with an init.d script, do
service mailman start
Converted from the Mailman FAQ Wizard
This is one of many Frequently Asked Questions.