From 77c57eb64b50b35eefad41ed1a7c5820843d34bc Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Fri, 9 Mar 2018 23:42:33 +0200 Subject: [PATCH] Handle FlushError in transfer_file_to_matrix --- mautrix_telegram/util/file_transfer.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mautrix_telegram/util/file_transfer.py b/mautrix_telegram/util/file_transfer.py index 530b78be..a1424987 100644 --- a/mautrix_telegram/util/file_transfer.py +++ b/mautrix_telegram/util/file_transfer.py @@ -20,6 +20,7 @@ import logging import magic from sqlalchemy.exc import IntegrityError, InvalidRequestError +from sqlalchemy.orm.exc import FlushError try: from PIL import Image except ImportError: @@ -158,6 +159,10 @@ async def transfer_file_to_matrix(db, client, intent, location, thumbnail=None): try: db.add(db_file) db.commit() + except FlushError as e: + log.exception(f"{e.__class__.__name__} while saving transferred file data. " + "This was probably caused by two simultaneous transfers of the same file, " + "and should not cause any problems.") except (IntegrityError, InvalidRequestError) as e: db.rollback() log.exception(f"{e.__class__.__name__} while saving transferred file data. "