1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-08-10 16:05:22 +02:00

Fix race condition in sync status monitor

Move family timestamp update to after_commit callback to ensure
database visibility before cache invalidation
This commit is contained in:
Zach Gollwitzer 2025-06-25 15:15:40 -04:00
parent cea49d5038
commit 0c8d867588

View file

@ -19,6 +19,8 @@ class Sync < ApplicationRecord
scope :incomplete, -> { where("syncs.status IN (?)", %w[pending syncing]) }
scope :visible, -> { incomplete.where("syncs.created_at > ?", VISIBLE_FOR.ago) }
after_commit :update_family_sync_timestamp
validate :window_valid
# Sync state machine
@ -169,7 +171,6 @@ class Sync < ApplicationRecord
def handle_transition
log_status_change
family.touch(:latest_sync_activity_at)
end
def handle_completion_transition
@ -182,6 +183,10 @@ class Sync < ApplicationRecord
end
end
def update_family_sync_timestamp
family.touch(:latest_sync_activity_at)
end
def family
if syncable.is_a?(Family)
syncable