-
Type: Bug
-
Resolution: Fixed
-
Priority: Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
Goal
Load data from Realm
Actual Results
RealmError
io.realm.exceptions.RealmError: Unrecoverable error. Key not found in /Users/eduardo.lopez/git/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_Table.cpp line 570 at io.realm.internal.Table.nativeGetRowPtr(Table.java) at io.realm.internal.UncheckedRow.getByRowKey(UncheckedRow.java:77) at io.realm.internal.Table.getUncheckedRow(Table.java:399) at io.realm.BaseRealm.get(BaseRealm.java:682) at io.realm.app_storage_viewhistory_RealmProfileActionRealmProxy.realmGet$member(app_storage_viewhistory_RealmProfileActionRealmProxy.java:105) at app.storage.viewhistory.RealmProfileAction.getMember(RealmProfileAction.java:8) at app.storage.viewhistory.ProfileActionDao.getProfilesList(ProfileActionDao.java:126) at app.screens.matches.viewmodel.MatchesHistoryViewModel$observeMatchesState$1.call(MatchesHistoryViewModel.java:77) at app.screens.matches.viewmodel.MatchesHistoryViewModel$observeMatchesState$1.call(MatchesHistoryViewModel.java:28) at io.reactivex.internal.operators.observable.ObservableFromCallable.subscribeActual(ObservableFromCallable.java:43) at io.reactivex.Observable.subscribe(Observable.java:12284) at io.reactivex.internal.operators.observable.ObservableCombineLatest$LatestCoordinator.subscribe(ObservableCombineLatest.java:117) at io.reactivex.internal.operators.observable.ObservableCombineLatest.subscribeActual(ObservableCombineLatest.java:71) at io.reactivex.Observable.subscribe(Observable.java:12284) at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96) at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578) at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66) at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)
Steps & Code to Reproduce
This was all working fine until we upgraded to 7.0.0. We initially thought this was an issue with the Realm getting corrupted on upgrade, so released a new version with Realm 7.0.1. The issue persisted and we released a new version where we deleted the realm on application start. The realm was deleted with Realm.deleteRealm(RealmConfiguration), and in the event that it fails to delete the Realm we log an exception. We are seeing this exception for a couple of users, but much smaller numbers than the number of users hitting the above crash.
We are also seeing the following error:
io.realm.exceptions.RealmError: Unrecoverable error. Key not found in /Users/eduardo.lopez/git/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsObject.cpp line 309 at io.realm.internal.OsObject.nativeCreateRowWithLongPrimaryKey(OsObject.java) at io.realm.internal.OsObject.createRowWithPrimaryKey(OsObject.java:236) at io.realm.app_storage_members_RealmMemberRealmProxy.insertOrUpdate(app_storage_members_RealmMemberRealmProxy.java:1157) at io.realm.DefaultRealmModuleMediator.insertOrUpdate(DefaultRealmModuleMediator.java:577) at io.realm.Realm.insertOrUpdate(Realm.java:1263) at app.storage.members.MemberDao$insertProfile$$inlined$use$lambda$1.execute(MemberDao.java:16) at io.realm.Realm.executeTransaction(Realm.java:1489) at app.storage.members.MemberDao.insertProfile(MemberDao.java:15) at app.managers.Manager.insertEntryIntoLocalProfileHistoryDB(Manager.java:227) at app.managers.Manager.updateDB(Manager.java:175) at app.managers.Manager.successfull(Manager.java:119) at app.syncers.Syncer.successful(Syncer.java:222) at app.syncers.Syncer.<init>(Syncer.java:24) at app.syncers.Syncer$send$1.invoke(Syncer.java:177) at app.syncers.Syncer$send$1.invoke(Syncer.java:24) at io.reactivex.rxkotlin.SubscribersKt$sam$io_reactivex_functions_Consumer$0.accept(SubscribersKt.java:2) at io.reactivex.internal.observers.ConsumerSingleObserver.onSuccess(ConsumerSingleObserver.java:62) at io.reactivex.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.onSuccess(SingleSubscribeOn.java:68) at io.reactivex.internal.operators.observable.ObservableSingleSingle$SingleElementObserver.onComplete(ObservableSingleSingle.java:109) at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onComplete(ObservableSubscribeOn.java:68) at retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onComplete(BodyObservable.java:70) at retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:52) at io.reactivex.Observable.subscribe(Observable.java:12284) at retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:35) at io.reactivex.Observable.subscribe(Observable.java:12284) at io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96) at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578) at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66) at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)
and
io.realm.exceptions.RealmError: Unrecoverable error. Key already used in /Users/eduardo.lopez/git/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsObject.cpp line 309 at io.realm.internal.OsObject.nativeCreateRowWithLongPrimaryKey(OsObject.java) at io.realm.internal.OsObject.createRowWithPrimaryKey(OsObject.java:236) at io.realm.app_storage_members_RealmMemberRealmProxy.insertOrUpdate(app_storage_members_RealmMemberRealmProxy.java:1157) at io.realm.DefaultRealmModuleMediator.insertOrUpdate(DefaultRealmModuleMediator.java:577) at io.realm.Realm.insertOrUpdate(Realm.java:1263) at app.storage.members.MemberDao$insertProfile$$inlined$use$lambda$1.execute(MemberDao.java:16) at io.realm.Realm.executeTransaction(Realm.java:1489) at app.storage.members.MemberDao.insertProfile(MemberDao.java:15)
Version of Realm and tooling
Realm version(s): 7.0.0 & 7.0.1
Realm Sync feature enabled: No
Android Studio version: 4.0.0
Android Build Tools version: 29.0.3
Gradle version: 6.5