From b38052acf334de06fefe81cf9512f905007e897b Mon Sep 17 00:00:00 2001 From: Jan-Erik Rediger Date: Fri, 15 Aug 2025 15:38:16 +0200 Subject: [PATCH] Sync event databases on persist_ping_lifetime_data --- glean-core/src/core/mod.rs | 2 ++ glean-core/src/event_database/mod.rs | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/glean-core/src/core/mod.rs b/glean-core/src/core/mod.rs index 1d1a1e22f3..bcc96e162e 100644 --- a/glean-core/src/core/mod.rs +++ b/glean-core/src/core/mod.rs @@ -881,6 +881,8 @@ impl Glean { return data.persist_ping_lifetime_data(); } + self.event_storage().sync_event_data(); + Ok(()) } diff --git a/glean-core/src/event_database/mod.rs b/glean-core/src/event_database/mod.rs index 50344dc86c..4760d9fa9d 100644 --- a/glean-core/src/event_database/mod.rs +++ b/glean-core/src/event_database/mod.rs @@ -641,6 +641,15 @@ impl EventDatabase { result } + pub fn sync_event_data(&self) { + let files = self.event_store_files.read().unwrap(); + for (name, file) in &*files { + if let Err(e) = file.sync_all() { + log::error!("Failed to sync event data for {name}: {e}"); + } + } + } + /// Clears all stored events, both in memory and on-disk. pub fn clear_all(&self) -> Result<()> { // safe unwrap, only error case is poisoning