diff options
| author | Astounds <kirito@disroot.org> | 2026-03-28 16:06:47 -0500 |
|---|---|---|
| committer | Astounds <kirito@disroot.org> | 2026-03-28 16:06:47 -0500 |
| commit | fa7273b328b8cea8b051917f5255a1a712a9e1b9 (patch) | |
| tree | c52212a4675792556c7e595dc4c8a3b3c8e187e4 /settings.py | |
| parent | a0d10e6a007e6191f1fa34174fd08f4f2c3e580b (diff) | |
| download | yt-local-fa7273b328b8cea8b051917f5255a1a712a9e1b9.tar.lz yt-local-fa7273b328b8cea8b051917f5255a1a712a9e1b9.tar.xz yt-local-fa7273b328b8cea8b051917f5255a1a712a9e1b9.zip | |
fix: race condition in os.makedirs causing worker crashes
Replace check-then-create pattern with exist_ok=True to prevent
FileExistsError when multiple workers initialize simultaneously.
Affects:
- subscriptions.py: open_database()
- watch.py: save_decrypt_cache()
- local_playlist.py: add_to_playlist()
- util.py: fetch_url(), get_visitor_data()
- settings.py: initialization
Fixes Gunicorn worker startup failures in multi-worker deployments.
Diffstat (limited to 'settings.py')
| -rw-r--r-- | settings.py | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/settings.py b/settings.py index 2aecc87..64dbfc5 100644 --- a/settings.py +++ b/settings.py @@ -453,8 +453,7 @@ else: print("Running in non-portable mode") settings_dir = os.path.expanduser(os.path.normpath("~/.yt-local")) data_dir = os.path.expanduser(os.path.normpath("~/.yt-local/data")) - if not os.path.exists(settings_dir): - os.makedirs(settings_dir) + os.makedirs(settings_dir, exist_ok=True) settings_file_path = os.path.join(settings_dir, 'settings.txt') |
