diff options
Diffstat (limited to 'src/mailman/model/messagestore.py')
| -rw-r--r-- | src/mailman/model/messagestore.py | 14 |
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) |
