summary refs log tree commit diff
path: root/synapse/config
diff options
context:
space:
mode:
authorSean Quah <8349537+squahtx@users.noreply.github.com>2021-09-27 11:29:23 +0100
committerGitHub <noreply@github.com>2021-09-27 11:29:23 +0100
commit6c83c2710760a4f551d1a925fc9b1a19ae8797c1 (patch)
tree0e7fb86a7093700eaa338c7ffeaa1b380d164d92 /synapse/config
parentDocument changes to schema version 61 - 64 (#10917) (diff)
downloadsynapse-6c83c2710760a4f551d1a925fc9b1a19ae8797c1.tar.xz
Fix race conditions when creating media store and config directories (#10913)
Diffstat (limited to 'synapse/config')
-rw-r--r--synapse/config/_base.py9
1 files changed, 2 insertions, 7 deletions
diff --git a/synapse/config/_base.py b/synapse/config/_base.py
index 2cc242782a..d974a1a2a8 100644
--- a/synapse/config/_base.py
+++ b/synapse/config/_base.py
@@ -200,11 +200,7 @@ class Config:
     @classmethod
     def ensure_directory(cls, dir_path):
         dir_path = cls.abspath(dir_path)
-        try:
-            os.makedirs(dir_path)
-        except OSError as e:
-            if e.errno != errno.EEXIST:
-                raise
+        os.makedirs(dir_path, exist_ok=True)
         if not os.path.isdir(dir_path):
             raise ConfigError("%s is not a directory" % (dir_path,))
         return dir_path
@@ -693,8 +689,7 @@ class RootConfig:
                     open_private_ports=config_args.open_private_ports,
                 )
 
-                if not path_exists(config_dir_path):
-                    os.makedirs(config_dir_path)
+                os.makedirs(config_dir_path, exist_ok=True)
                 with open(config_path, "w") as config_file:
                     config_file.write(config_str)
                     config_file.write("\n\n# vim:ft=yaml")