diff options
author | Erik Johnston <erikj@matrix.org> | 2023-08-30 15:18:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-30 15:18:34 +0100 |
commit | 3de82bb2af28f56696a79bf41ccffc81385b6e2c (patch) | |
tree | 13f12b42ca11ef4ba7ad8c8756bc05f50ed38263 | |
parent | Fix rare bug that broke looping calls (#16210) (diff) | |
download | synapse-3de82bb2af28f56696a79bf41ccffc81385b6e2c.tar.xz |
Gracefully handle failing to thumbnail images (#16211)
-rw-r--r-- | changelog.d/16211.bugfix | 1 | ||||
-rw-r--r-- | synapse/__init__.py | 5 | ||||
-rw-r--r-- | synapse/media/media_repository.py | 5 |
3 files changed, 10 insertions, 1 deletions
diff --git a/changelog.d/16211.bugfix b/changelog.d/16211.bugfix new file mode 100644 index 0000000000..ab1816386c --- /dev/null +++ b/changelog.d/16211.bugfix @@ -0,0 +1 @@ +Fix a long-standing bug where uploading images would fail if we could not generate thumbnails for them. diff --git a/synapse/__init__.py b/synapse/__init__.py index 2f9c22a833..4a9bbc4d57 100644 --- a/synapse/__init__.py +++ b/synapse/__init__.py @@ -21,9 +21,14 @@ import os import sys from typing import Any, Dict +from PIL import ImageFile + from synapse.util.rust import check_rust_lib_up_to_date from synapse.util.stringutils import strtobool +# Allow truncated JPEG images to be thumbnailed. +ImageFile.LOAD_TRUNCATED_IMAGES = True + # Check that we're not running on an unsupported Python version. # # Note that we use an (unneeded) variable here so that pyupgrade doesn't nuke the diff --git a/synapse/media/media_repository.py b/synapse/media/media_repository.py index 4b750c700b..1b7b014f9a 100644 --- a/synapse/media/media_repository.py +++ b/synapse/media/media_repository.py @@ -214,7 +214,10 @@ class MediaRepository: user_id=auth_user, ) - await self._generate_thumbnails(None, media_id, media_id, media_type) + try: + await self._generate_thumbnails(None, media_id, media_id, media_type) + except Exception as e: + logger.info("Failed to generate thumbnails: %s", e) return MXCUri(self.server_name, media_id) |