summaryrefslogtreecommitdiff
path: root/src/mailman/model/messagestore.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/model/messagestore.py')
-rw-r--r--src/mailman/model/messagestore.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mailman/model/messagestore.py b/src/mailman/model/messagestore.py
index d5b6eb1e3..7b03621ff 100644
--- a/src/mailman/model/messagestore.py
+++ b/src/mailman/model/messagestore.py
@@ -125,8 +125,12 @@ class MessageStore:
@dbconnection
def delete_message(self, store, message_id):
row = store.query(Message).filter_by(message_id=message_id).first()
- if row is None:
- raise LookupError(message_id)
- path = os.path.join(config.MESSAGES_DIR, row.path)
- os.remove(path)
- store.delete(row)
+ if row is not None:
+ path = os.path.join(config.MESSAGES_DIR, row.path)
+ # It's possible that a race condition caused the file system path
+ # to already be deleted.
+ try:
+ os.remove(path)
+ except FileNotFoundError:
+ pass
+ store.delete(row)