objectbox-dart
objectbox-dart copied to clipboard
Bad state: failed to create store: Cannot open store: another store
Build info
- objectbox version:"4.0.3"
- Flutter/Dart version: Flutter: 3.27.0 Dart SDK version: 3.6.0
- Build OS: [Windows 10 ]
Steps to reproduce
Getting such callstack on Crashlitics.
Fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Bad state: failed to create store: Cannot open store: another store is still open using the same path: "/data/data/com.gst.color.numbers.pixyfy/app_flutter/objectbox" (OBX_ERROR code 10001) at ObjectBoxNativeError.throwMapped(helpers.dart:74) at .throwLatestNativeError(helpers.dart:54) at .checkObxPtr(helpers.dart:31) at Store._checkStorePointer(store.dart:451) at .new Store(store.dart:274) at .openStore(objectbox.g.dart:271) at PictureInfoRepository.performOpen(picture_info_repository.dart:164)
We are initializing DB in main functon.
Scerario look more less like this:
- User start app and it works
- App show ad
- Ad became closed and app is back again --> database is locked
I can not reproduce that, some additional conditions must occurs. This what we see in crashlitics
Expected behavior
Do not crash or some workaround
Actual behavior
App not starting
Thanks for reporting!
TL;DR: see #436 for a possible workaround.
A little background: the ObjectBox database runs on the process level. Only some state lives in the Dart VM, but otherwise calls are made to the native implementation.
Somehow it appears that the Dart state can be cleared (e.g. the Dart app terminates) without the native process ending, leaving the ObjectBox database open.
I wonder if using something like an AppLifecycleListener and then opening and closing the database when leaving or entering the detached state would solve this?
(internal issue objectbox-dart#67)
I just wondering if it is possible to detect this case and attach to running instance?
I've linked the issue with exactly that workaround:
TL;DR: see https://github.com/objectbox/objectbox-dart/issues/436 for a possible workaround.
Here is the direct link: https://github.com/objectbox/objectbox-dart/issues/436#issuecomment-1219356368
Closing this issue due to inactivity. :zzz: Feel free to comment with more details or submit a new issue.