diff options
author | Sean Quah <8349537+squahtx@users.noreply.github.com> | 2021-09-27 11:29:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-27 11:29:23 +0100 |
commit | 6c83c2710760a4f551d1a925fc9b1a19ae8797c1 (patch) | |
tree | 0e7fb86a7093700eaa338c7ffeaa1b380d164d92 /synapse/rest/media | |
parent | Document changes to schema version 61 - 64 (#10917) (diff) | |
download | synapse-6c83c2710760a4f551d1a925fc9b1a19ae8797c1.tar.xz |
Fix race conditions when creating media store and config directories (#10913)
Diffstat (limited to 'synapse/rest/media')
-rw-r--r-- | synapse/rest/media/v1/media_storage.py | 6 | ||||
-rw-r--r-- | synapse/rest/media/v1/storage_provider.py | 3 |
2 files changed, 3 insertions, 6 deletions
diff --git a/synapse/rest/media/v1/media_storage.py b/synapse/rest/media/v1/media_storage.py index 01fada8fb5..fca239d8c7 100644 --- a/synapse/rest/media/v1/media_storage.py +++ b/synapse/rest/media/v1/media_storage.py @@ -132,8 +132,7 @@ class MediaStorage: fname = os.path.join(self.local_media_directory, path) dirname = os.path.dirname(fname) - if not os.path.exists(dirname): - os.makedirs(dirname) + os.makedirs(dirname, exist_ok=True) finished_called = [False] @@ -244,8 +243,7 @@ class MediaStorage: return legacy_local_path dirname = os.path.dirname(local_path) - if not os.path.exists(dirname): - os.makedirs(dirname) + os.makedirs(dirname, exist_ok=True) for provider in self.storage_providers: res: Any = await provider.fetch(path, file_info) diff --git a/synapse/rest/media/v1/storage_provider.py b/synapse/rest/media/v1/storage_provider.py index 289e4297f2..da78fcee5e 100644 --- a/synapse/rest/media/v1/storage_provider.py +++ b/synapse/rest/media/v1/storage_provider.py @@ -138,8 +138,7 @@ class FileStorageProviderBackend(StorageProvider): backup_fname = os.path.join(self.base_directory, path) dirname = os.path.dirname(backup_fname) - if not os.path.exists(dirname): - os.makedirs(dirname) + os.makedirs(dirname, exist_ok=True) await defer_to_thread( self.hs.get_reactor(), shutil.copyfile, primary_fname, backup_fname |