From 3c934a93cd97f571ee2ad1722ddf2b06637a67cf Mon Sep 17 00:00:00 2001 From: rkuo-danswer Date: Sat, 14 Sep 2024 23:27:05 -0700 Subject: [PATCH] using is_up_to_date cached outside of the fence was causing a race condition where the same sync could be kicked off again (#2433) --- backend/danswer/background/celery/celery_app.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/danswer/background/celery/celery_app.py b/backend/danswer/background/celery/celery_app.py index 75f4143aa247..9334992423e5 100644 --- a/backend/danswer/background/celery/celery_app.py +++ b/backend/danswer/background/celery/celery_app.py @@ -274,6 +274,8 @@ def try_generate_document_set_sync_tasks( return None # don't generate sync tasks if we're up to date + # race condition with the monitor/cleanup function if we use a cached result! + db_session.refresh(document_set) if document_set.is_up_to_date: return None @@ -316,6 +318,8 @@ def try_generate_user_group_sync_tasks( if r.exists(rug.fence_key): return None + # race condition with the monitor/cleanup function if we use a cached result! + db_session.refresh(usergroup) if usergroup.is_up_to_date: return None