Page MenuHomePhabricator

D12624.id.diff
No OneTemporary

D12624.id.diff

diff --git a/native/android/app/src/main/java/app/comm/android/CommCoreJSIModulePackage.java b/native/android/app/src/main/java/app/comm/android/CommCoreJSIModulePackage.java
--- a/native/android/app/src/main/java/app/comm/android/CommCoreJSIModulePackage.java
+++ b/native/android/app/src/main/java/app/comm/android/CommCoreJSIModulePackage.java
@@ -26,6 +26,13 @@
CommSecureStore.getInstance().initialize(secureStoreModuleSupplier);
CommHybrid.initHybrid(reactApplicationContext);
+ // We issue a useless set on CommSecureStore here to force it to initialize
+ // prior to scheduling initializeDatabaseManager on the DB thread below.
+ // This avoids a race condition where the DB thread and main thread both
+ // attempt to initialize CommSecureStore at the same time, which can cause
+ // a crash loop as described in ENG-7696 and ENG-8069.
+ CommSecureStore.set("comm.secure_store_initialization_complete", "1");
+
File sqliteFile = reactApplicationContext.getDatabasePath("comm.sqlite");
GlobalDBSingleton.scheduleOrRun(() -> {
DatabaseInitializer.initializeDatabaseManager(sqliteFile.getPath());

File Metadata

Mime Type
text/plain
Expires
Tue, Oct 8, 7:44 AM (2 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2257487
Default Alt Text
D12624.id.diff (1 KB)

Event Timeline