From 2de2f20bdfc5b860a7e8d81985fece326d27c49f Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Tue, 18 May 2021 12:27:22 +0200 Subject: [PATCH 1/2] SyncServer - fix for 'local' in Local Setting broke regular sync loop 'local' cannot be used in regular sync loop, only for LS --- openpype/modules/sync_server/sync_server_module.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openpype/modules/sync_server/sync_server_module.py b/openpype/modules/sync_server/sync_server_module.py index ed403b836d..15de4b12e9 100644 --- a/openpype/modules/sync_server/sync_server_module.py +++ b/openpype/modules/sync_server/sync_server_module.py @@ -501,6 +501,8 @@ class SyncServerModule(PypeModule, ITrayModule): items = self.get_configurable_items_for_site(project_name, site_name, scope) + # Local Settings need 'local' instead of real value + site_name = site_name.replace(get_local_site_id(), 'local') editable[site_name] = items return editable @@ -591,8 +593,6 @@ class SyncServerModule(PypeModule, ITrayModule): else: item["value"] = val - - editable.append(item) return editable @@ -877,7 +877,7 @@ class SyncServerModule(PypeModule, ITrayModule): } all_sites = {self.DEFAULT_SITE: studio_config} if sync_enabled: - all_sites['local'] = {'provider': 'local_drive'} + all_sites[get_local_site_id()] = {'provider': 'local_drive'} return all_sites def get_provider_for_site(self, project_name=None, site=None): From e062d960b3e3a98d48006febaabaee87cc18d717 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Tue, 18 May 2021 12:34:18 +0200 Subject: [PATCH 2/2] SyncServer - handle possible race condition This might throw FileNotFoundError for missing file if progress check is faster than file creation --- openpype/modules/sync_server/providers/local_drive.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openpype/modules/sync_server/providers/local_drive.py b/openpype/modules/sync_server/providers/local_drive.py index 3b3e699d00..4b80ed44f2 100644 --- a/openpype/modules/sync_server/providers/local_drive.py +++ b/openpype/modules/sync_server/providers/local_drive.py @@ -170,7 +170,10 @@ class LocalDriveHandler(AbstractProvider): site=site, progress=status_val ) - target_file_size = os.path.getsize(target_path) + try: + target_file_size = os.path.getsize(target_path) + except FileNotFoundError: + pass time.sleep(0.5) def _normalize_site_name(self, site_name):