summaryrefslogtreecommitdiff
path: root/Mailman/OutgoingQueue.py
diff options
context:
space:
mode:
Diffstat (limited to 'Mailman/OutgoingQueue.py')
-rw-r--r--Mailman/OutgoingQueue.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/Mailman/OutgoingQueue.py b/Mailman/OutgoingQueue.py
index 5ab7b8358..cd59c27c3 100644
--- a/Mailman/OutgoingQueue.py
+++ b/Mailman/OutgoingQueue.py
@@ -82,7 +82,9 @@ def processQueue():
import Utils
lock_file = flock.FileLock(
- os.path.join(mm_cfg.LOCK_DIR, "mmqueue_run.lock"))
+ os.path.join(mm_cfg.LOCK_DIR, "mmqueue_run.lock"),
+ # running the queue can take a long time.
+ hung_timeout=14400)
lock_file.lock()
files = os.listdir(mm_cfg.DATA_DIR)
for file in files:
@@ -176,4 +178,11 @@ def deferMessage(q_entry):
# remove it from the queue
#
def dequeueMessage(q_entry):
- os.unlink(q_entry)
+ try:
+ os.unlink(q_entry)
+ except os.error, (code, msg):
+ if code == errno.ENOENT:
+ # file does not exist, probably because the lock was stolen
+ pass
+ else:
+ Utils.reraise()