Realm-java: Realm is causing a reboot on device running Android O developer preview

Created on 11 May 2017  路  9Comments  路  Source: realm/realm-java

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 :

  • Realm version(s): 3.1.4 (latest)
  • Android Studio version: 2.4 preview 7
  • com.android.tools.build:gradle:2.4.0-alpha7

Which Android version and device:
Android O Dev Preview 1 - Nexus 5X

T-Bug-Crash

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)?

All 9 comments

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.

Was this page helpful?
0 / 5 - 0 ratings