Closed ankursharma234 closed 4 years ago
@ankursharma234 Are you seeing this on multiple devices? In that case, which ones?
Also are you by any chance moving Realm files around yourself? The error indicates that the file is "shorter" than expected.
@cmelchior Devices: samsung - 57% Xiaomi - 12% OnePlus - 11% OPPO - 4%
No realm file is not moved by any chance. And what do you mean by file is shorter than expected
@ankursharma234 Do you have similar stack traces from these devices? We would be very interested in knowing the exact values from those exceptions as that can help us narrow down where this might occur.
Also if you know the exact device, that would be extremely helpful as well. Especially the device where this is most common.
When I say the file appears to "short", it is because the top_refs defines an offset into the file that indicates where it "starts", but that offset is outside the actual size of the file. This should of course not be possible, but we still haven't been able to reproduce this.
I have a similar issue: Samples of different devices: Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{....library.LibraryActivity}: io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/com.mycompany/files/librarydb.realm': Top ref outside file (size = 1310720). top_ref[0]: 303150000031878, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0. (Top ref outside file (size = 1310720). top_ref[0]: 303150000031878, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0) (/data/data/com.mycompany/files/librarydb.realm) in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101 Kind: ACCESS_ERROR. Galaxy On5
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{....library.LibraryActivity}: io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/com.mycompany/files/librarydb.realm': Top ref outside file (size = 1703936). top_ref[0]: 303150000142A50, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0. (Top ref outside file (size = 1703936). top_ref[0]: 303150000142A50, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0) (/data/data/com.mycompany/files/librarydb.realm) in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101 Kind: ACCESS_ERROR. LGMP450
Fatal Exception: io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/com.mycompany/files/librarydb.realm': Top ref outside file (size = 1310720). top_ref[0]: 303150000024E60, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0. (Top ref outside file (size = 1310720). top_ref[0]: 303150000024E60, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0) (/data/data/com.mycompany/files/librarydb.realm) in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101 Oneplus 2
Fatal Exception: java.lang.RuntimeException: Unable to create application com.mycompany.MainApplication: io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/com.mycompany/files/userdb.realm': Top ref outside file (size = 36864). top_ref[0]: 3031500000083E8, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0. (Top ref outside file (size = 36864). top_ref[0]: 3031500000083E8, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0) (/data/data/com.mycompany/files/userdb.realm) in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101 Kind: ACCESS_ERROR. H8216
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{....library.LibraryActivity}: io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/com.mycompany/files/librarydb.realm': Top ref outside file (size = 1310720). top_ref[0]: 303150000036140, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 1. (Top ref outside file (size = 1310720). top_ref[0]: 303150000036140, top_ref[1]: 46020200, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 1) (/data/data/com.mycompany/files/librarydb.realm) in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101 Kind: ACCESS_ERROR. Galaxy S7
This is now being tracked in Core here: https://github.com/realm/realm-core/issues/3133.
@ankursharma234 Any information you have regarding how the Realms are being opened/manipulated would be very valuable. Especially if you copying Realms from assets, deleting or copying the files. If you can share your RealmConfiguration that would also help.
Caused by io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/in.package/files/090b64fb-3170-4266-9af7-2d3aed04bc8b': Top ref outside file (size = 268484608). top_ref[0]: FF50828, top_ref[1]: 100473C0, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 1. (Top ref outside file (size = 268484608). top_ref[0]: FF50828, top_ref[1]: 100473C0, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 1) (/data/data/in.package/files/090b64fb-3170-4266-9af7-2d3aed04bc8b)
From #6304
@cmelchior Here is my realm configuration
private static RealmConfiguration getRealmConfig(final Context context, final String id) {
RealmConfiguration config = configByCompany.get(id);
if (null == config) {
config = new RealmConfiguration.Builder()
.name(id)
.schemaVersion(62)
.migration(new Migration())
.encryptionKey(KeystoreUtils.getEncryptionKey(context, id))
.build();
configByCompany.put(id, config);
}
return config;
}
public synchronized static Realm getRealm(final String id) {
final Context context = BizAnalystApplication.getInstance().getApplicationContext();
final RealmConfiguration config = getRealmConfig(context, id);
return Realm.getInstance(config);
}
And no, the files are not moved or copied nor they are deleted
Got the same stuff here - attached the stack traces. com.app_issue_crash_5CD0B748033400010F4EC84DCA59D6AE_DNE_5_v2.txt
I'm also getting similar crashes. I'm using multi process, not sure if it is relevant.
Realm version: 5.14.0
@jpmcosta Please log all details if it's the same exception. In cases where it's not immediately reproducible, the more details we have the better.
@bmunkholm unfortunately the bug was already removed from my issue tracker. I didn't share it, because I thought it was irrelevant. I will take that into consideration in future reports. Sorry about that.
Should be fixed in 6.0.1 (not released yet), but 6.0.1-SNAPSHOT
should be available. See https://github.com/realm/realm-java/blob/master/README.md#using-snapshots
@cmelchior I catch this problem now,at version realm-gradle-plugin 6.0.2!But I first feedback to MangoDB community forum. repeatedly, I comment here for a resolution as soon as possible.
below is my tidy-up feedback ago:
Help! Help! Help! today morning when i open my Android app, its crash by realm Exception! but it is no problem yesterday! below is the exception stacktrace throw by my app:
2022-07-15 10:15:39.638 15324-15324/com.oohlink.player E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.oohlink.player, PID: 15324
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.oohlink.player/com.oohlink.player.main.MainActivity}: io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/com.oohlink.player/files/oohlink.realm': Top ref outside file (size = 9437184). top_ref[0]: 1851010155FFAA00, top_ref[1]: 12755, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0 Path:Exception backtrace:
<backtrace not supported on this platform>. (Top ref outside file (size = 9437184). top_ref[0]: 1851010155FFAA00, top_ref[1]: 12755, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0 Path: /data/data/com.oohlink.player/files/oohlink.realm
Exception backtrace:
<backtrace not supported on this platform>) (/data/data/com.oohlink.player/files/oohlink.realm) in /Users/cm/Realm/realm-java-release/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101 Kind: ACCESS_ERROR.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2671)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2732)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1483)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6141)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
Caused by: io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/com.oohlink.player/files/oohlink.realm': Top ref outside file (size = 9437184). top_ref[0]: 1851010155FFAA00, top_ref[1]: 12755, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0 Path:Exception backtrace:
<backtrace not supported on this platform>. (Top ref outside file (size = 9437184). top_ref[0]: 1851010155FFAA00, top_ref[1]: 12755, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0 Path: /data/data/com.oohlink.player/files/oohlink.realm
Exception backtrace:
<backtrace not supported on this platform>) (/data/data/com.oohlink.player/files/oohlink.realm) in /Users/cm/Realm/realm-java-release/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101 Kind: ACCESS_ERROR.
at io.realm.internal.OsSharedRealm.nativeGetSharedRealm(Native Method)
at io.realm.internal.OsSharedRealm.<init>(OsSharedRealm.java:171)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:241)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:231)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:337)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:290)
at io.realm.Realm.getDefaultInstance(Realm.java:407)
at com.oohlink.player.sdk.dataRepository.local.db.PlayerDatabaseDataSource.getReserveImageVersion(PlayerDatabaseDataSource.java:302)
at com.oohlink.player.sdk.dataRepository.PlayerDataRepository.getReserveImageVersionLocal(PlayerDataRepository.java:253)
at com.oohlink.player.sdk.manager.ReverseManager.getPlayReserveVersion(ReverseManager.java:166)
at com.oohlink.player.sdk.presenter.OohlinkPlayerViewPresenter.setReverse(OohlinkPlayerViewPresenter.java:144)
at com.oohlink.player.sdk.presenter.OohlinkPlayerViewPresenter.setOohlinkPlayerView(OohlinkPlayerViewPresenter.java:124)
at com.oohlink.player.sdk.PlayController.setOohlinkPlayerView(PlayController.java:113)
at com.oohlink.player.sdk.OohlinkPlayer.start(OohlinkPlayer.java:153)
at com.oohlink.player.main.MainActivity.onStart(MainActivity.java:215)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248)
at android.app.Activity.performStart(Activity.java:6726)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2634)
... 9 more
After, I fetch the realm file from my android device, and open it use RealmStudio at MacBookPro, it also prompt an Error below:
CLASSES
Unable to open a realm at path '/Users/marshall/oohlink.realm': Top ref outside file (size = 9437184). top_ref[0]: 1851010155FFAA00, top_ref[1]: 12755, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 0 Path:Exception backtrace: 0 .io.realm.realm-studio.xyK8Sz 0x0000000120639271 _ZN5realm15InvalidDatabaseC2ERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEES9_ + 49 1 .io.realm.realm-studio.xyK8Sz 0x0000000120558e1f _ZN5realm9SlabAlloc22throw_header_exceptionENSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERKNS0_6HeaderERKS7_ + 143 2 .io.realm.realm-studio.xyK8Sz 0x00000001205586a3 _ZN5realm9SlabAlloc15validate_bufferEPKcmRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE + 787 3 .io.realm.realm-studio.xyK8Sz 0x00000001205575cf _ZN5realm9SlabAlloc11attach_fileERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEERNS0_6ConfigE + 2111 4 .io.realm.realm-studio.xyK8Sz 0x0000000120631660 _ZN5realm11SharedGroup7do_openERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEbbNS_18SharedGroupOptionsE + 4960 5 .io.realm.realm-studio.xyK8Sz 0x0000000120334a1c _ZN5realm11SharedGroup4openERNS_11ReplicationENS_18SharedGroupOptionsE + 236 6 .io.realm.realm-studio.xyK8Sz 0x0000000120334403 _ZN5realm11SharedGroupC2ERNS_11ReplicationENS_18SharedGroupOptionsE + 1587 7 .io.realm.realm-studio.xyK8Sz 0x000000012029eff1 _ZN5realm5Realm16open_with_configERKNS0_6ConfigERNSt3__110unique_ptrINS_11ReplicationENS4_14default_deleteIS6_EEEERNS5_INS_11SharedGroupENS7_ISB_EEEERNS5_INS_5GroupENS7_ISF_EEEEPS0_ + 1145 8 .io.realm.realm-studio.xyK8Sz 0x000000012029e926 _ZN5realm5RealmC2ENS0_6ConfigENSt3__110shared_ptrINS_5_impl16RealmCoordinatorEEE + 278 9 .io.realm.realm-studio.xyK8Sz 0x00000001202a527e _ZZN5realm5Realm17make_shared_realmENS0_6ConfigENSt3__110shared_ptrINS_5_impl16RealmCoordinatorEEEEN19make_shared_enablerC2ES1_S6_ + 84 10 .io.realm.realm-studio.xyK8Sz 0x00000001202beda8 _ZNSt3__110shared_ptrIZN5realm5Realm17make_shared_realmENS2_6ConfigENS0_INS1_5_impl16RealmCoordinatorEEEE19make_shared_enablerE11make_sharedIJS3_S6_EEES8_DpOT_ + 136 11 .io.realm.realm-studio.xyK8Sz 0x00000001202b9f7c _ZN5realm5_impl16RealmCoordinator12do_get_realmENS_5Realm6ConfigERNSt3__110shared_ptrIS2_EERNS4_11unique_lockINS4_5mutexEEEb + 260 12 .io.realm.realm-studio.xyK8Sz 0x00000001202b9dea _ZN5realm5_impl16RealmCoordinator9get_realmENS_5Realm6ConfigE + 352 13 .io.realm.realm-studio.xyK8Sz 0x00000001202a0c9b _ZN5realm5Realm16get_shared_realmENS0_6ConfigE + 113 14 .io.realm.realm-studio.xyK8Sz 0x0000000120205cab _ZN5realm2js10RealmClassINS_4node5TypesEE19create_shared_realmEPN2v87IsolateENS_5Realm6ConfigEbONSt3__13mapINSA_12basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEENSB_ISH_NS0_9ProtectedINS5_5LocalINS5_5ValueEEEEENSA_4lessISH_EENSF_INSA_4pairIKSH_SM_EEEEEESO_NSF_INSP_ISQ_ST_EEEEEEONSB_ISH_NSI_INSJ_INS5_8FunctionEEEEESO_NSF_INSP_ISQ_S10_EEEEEE + 127 15 .io.realm.realm-studio.xyK8Sz 0x00000001202040a6 _ZN5realm2js10RealmClassINS_4node5TypesEE11constructorEPN2v87IsolateENS5_5LocalINS5_6ObjectEEERNS0_9ArgumentsIS3_EE + 402 16 .io.realm.realm-studio.xyK8Sz 0x00000001202033fb _ZN5realm4node10ObjectWrapINS_2js10RealmClassINS0_5TypesEEEE9constructERKN3Nan20FunctionCallbackInfoIN2v85ValueEEE + 333 17 .io.realm.realm-studio.xyK8Sz 0x0000000120203df2 _ZN3Nan3impL23FunctionCallbackWrapperERKN2v820FunctionCallbackInfoINS1_5ValueEEE + 166 18 Electron Framework 0x00000001119764a8 _ZN2v88internallsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS0_18BasicBlockProfilerE + 350504 19 Electron Framework 0x000000011193fada _ZN2v88internallsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS0_18BasicBlockProfilerE + 126810 20 Electron Framework 0x000000011193f3a7 _ZN2v88internallsERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEERKNS0_18BasicBlockProfilerE + 124967 21 Electron Framework 0x0000000112286dce _ZN2v88internal6Parser31BuildIteratorCloseForCompletionEPNS0_8ZoneListIPNS0_9StatementEEEPNS0_8VariableEPNS0_10ExpressionENS0_12IteratorTypeE + 1450046.
Actual Results
Caused by io.realm.exceptions.RealmFileException: Unable to open a realm at path '/data/data/packageName/files/file': Top ref outside file (size = 268484608). top_ref[0]: FF50828, top_ref[1]: 100473C0, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 1. (Top ref outside file (size = 268484608). top_ref[0]: FF50828, top_ref[1]: 100473C0, mnemonic: 54 2D 44 42, fmt[0]: 9, fmt[1]: 9, flags: 1) (/data/data/packageName/files/file) in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsSharedRealm.cpp line 101 at io.realm.internal.OsSharedRealm.nativeGetSharedRealm(OsSharedRealm.java) at io.realm.internal.OsSharedRealm.(OsSharedRealm.java:171)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:241)
at io.realm.internal.OsSharedRealm.getInstance(OsSharedRealm.java:231)
at io.realm.RealmCache.doCreateRealmOrGetFromCache(RealmCache.java:319)
at io.realm.RealmCache.createRealmOrGetFromCache(RealmCache.java:282)
at io.realm.Realm.getInstance(Realm.java:378)
at in.bizanalyst.utils.RealmUtils.getRealm(RealmUtils.java:65)
at in.bizanalyst.utils.RealmUtils.getCurrentRealm(RealmUtils.java:76)
at in.bizanalyst.activity.MainActivity.onCreate(MainActivity.java:201)
at android.app.Activity.performCreate(Activity.java:6955)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386)
Steps & Code to Reproduce
Not reproducable
Version of Realm and tooling Realm version(s): 5.4.1
Realm Sync feature enabled: Yes
Android Studio version: Yes
Android Build Tools version: 27.0.3
Gradle version: 3.4.1
Which Android version and device(s): All