On a Nexus 5X running Android O Developer preview 1, any request to Realm, query or transaction, seems to fail and cause the phone to reboot.
What is even weirder is that changing how many field are present in RealmObject is changing how the error is triggered...
Maybe it's related to this but I don't really know : https://developer.android.com/preview/behavior-changes.html#nl
Actual Results
Phone is rebooting when pressing Query or Save button
Steps & Code to Reproduce :
Version of Realm and tooling :
Which Android version and device:
Android O Dev Preview 1 - Nexus 5X
We don't have a 5X around at the moment. It doesn't, perchance, fail on an emulator running O, does it?
It is not failing on the emulator....
I reproduced the same reboot.
05-11 11:25:54.226 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeCreateConfig
05-11 11:25:54.227 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeCreateConfig
05-11 11:25:54.228 2669 6264 D audio_hw_primary: enable_snd_device: snd_device(78: vi-feedback)
05-11 11:25:54.228 2669 6264 D audio_hw_primary: enable_audio_route: usecase(23) apply and update mixer path: spkr-vi-record
05-11 11:25:54.228 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetSharedRealm 547447772960
05-11 11:25:54.231 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetSharedRealm 547447772960
05-11 11:25:54.253 2669 6264 D audio_hw_primary: enable_audio_route: usecase(1) apply and update mixer path: low-latency-playback
05-11 11:25:54.258 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeSetAutoRefresh 547205736784
05-11 11:25:54.258 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeSetAutoRefresh 547205736784
05-11 11:25:54.258 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeCloseConfig 547447772960
05-11 11:25:54.258 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeCloseConfig 547447772960
05-11 11:25:54.260 7593 7593 V REALM_JNI: --> Java_io_realm_internal_Table_nativeGetFinalizerPtr
05-11 11:25:54.260 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_Table_nativeGetFinalizerPtr
05-11 11:25:54.260 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeHasTable 547205736784
05-11 11:25:54.261 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeHasTable 547205736784
05-11 11:25:54.261 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736784
05-11 11:25:54.262 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736784
05-11 11:25:54.262 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeCloseSharedRealm 547205736784
05-11 11:25:54.263 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeCloseSharedRealm 547205736784
05-11 11:25:54.264 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeCreateConfig
05-11 11:25:54.264 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeCreateConfig
05-11 11:25:54.264 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetSharedRealm 547447772960
05-11 11:25:54.265 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetSharedRealm 547447772960
05-11 11:25:54.267 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.268 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.268 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeSetAutoRefresh 547205736832
05-11 11:25:54.268 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeSetAutoRefresh 547205736832
05-11 11:25:54.268 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeCloseConfig 547447772960
05-11 11:25:54.268 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeCloseConfig 547447772960
05-11 11:25:54.269 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.269 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.270 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.270 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.270 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeBeginTransaction 547205736832
05-11 11:25:54.270 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeBeginTransaction 547205736832
05-11 11:25:54.271 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.271 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.271 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.271 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.272 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeHasTable 547205736832
05-11 11:25:54.272 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeHasTable 547205736832
05-11 11:25:54.272 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.272 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.277 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.278 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.279 7593 7593 V REALM_JNI: --> Java_io_realm_internal_UncheckedRow_nativeGetFinalizerPtr
05-11 11:25:54.280 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_UncheckedRow_nativeGetFinalizerPtr
05-11 11:25:54.280 7593 7593 V REALM_JNI: --> Java_io_realm_internal_UncheckedRow_nativeGetString 547237132160
05-11 11:25:54.280 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_UncheckedRow_nativeGetString 547237132160
05-11 11:25:54.281 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeHasTable 547205736832
05-11 11:25:54.282 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeHasTable 547205736832
05-11 11:25:54.282 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.282 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.283 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.284 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.284 7593 7593 V REALM_JNI: --> Java_io_realm_internal_UncheckedRow_nativeGetString 547237133344
05-11 11:25:54.285 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_UncheckedRow_nativeGetString 547237133344
05-11 11:25:54.285 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.285 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.286 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeCancelTransaction 547205736832
05-11 11:25:54.286 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeCancelTransaction 547205736832
05-11 11:25:54.287 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.287 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.288 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeBeginTransaction 547205736832
05-11 11:25:54.288 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeBeginTransaction 547205736832
05-11 11:25:54.288 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.288 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetVersion 547205736832
05-11 11:25:54.288 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.289 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.289 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeIsInTransaction 547205736832
05-11 11:25:54.289 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeIsInTransaction 547205736832
05-11 11:25:54.289 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.290 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.290 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.291 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeGetTable 547205736832
05-11 11:25:54.291 7593 7593 V REALM_JNI: --> Java_io_realm_internal_UncheckedRow_nativeGetString 547237132480
05-11 11:25:54.292 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_UncheckedRow_nativeGetString 547237132480
05-11 11:25:54.292 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.293 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeIsClosed 547205736832
05-11 11:25:54.293 7593 7593 V REALM_JNI: --> Java_io_realm_internal_SharedRealm_nativeCommitTransaction 547205736832
05-11 11:25:54.293 7593 7593 W REALM_JNI: RealmLog message= --> Java_io_realm_internal_SharedRealm_nativeCommitTransaction 547205736832
then reboot happened.
In apps targeting Android O, native libraries no longer load if they contain any load segment that is both writable and executable. Some apps might stop working because of this change if they have native libraries with incorrect load segments. This is a security-hardening measure.
Realm doesn't have any segment with WE, so this should not be the problem :(
No matter what. A reboot should never happen. To me this sounds like is an issue that should be reported to the O Preview Bug Tracker
@zaki50 Can you create an issue at the Android bug tracker (or the O preview bug tracker if such a thing exist)?
A googler confirmed that this issue was already fixed internal repository.
https://issuetracker.google.com/issues/38220041#comment9
I'm closing this issue. Could you reopen this if the crash happens on the O preview 2.
I've confirmed that Android O Beta OPP2.170420.017 released today does not reproduce this issue.
Most helpful comment
@zaki50 Can you create an issue at the Android bug tracker (or the O preview bug tracker if such a thing exist)?