Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apps ANR because of librealm-jni.so(10.0.1) blocked on mobile devices which bases on kernel 5.10 #7509

Closed
Shirleynice opened this issue Jun 27, 2021 · 3 comments

Comments

@Shirleynice
Copy link

Shirleynice commented Jun 27, 2021

Goal

Apps can run successfully

Actual Results

Actual: Apps ANR.
Note: The issue just can reproduce on mobile device which uses kernel5.10.

======================================================

suspend all histogram: Sum: 129us 99% C.I. 2us-53us Avg: 16.125us Max: 53us
DALVIK THREADS (129):
"Signal Catcher" daemon prio=10 tid=5 Runnable
| group="system" sCount=0 ucsCount=0 flags=0 obj=0x147001c0 self=0xd92c0010
| sysTid=29156 nice=-20 cgrp=system sched=0/0 handle=0xd05b01c0
| state=R schedstat=( 11550209 172188 7 ) utm=0 stm=0 core=6 HZ=100
| stack=0xd04b5000-0xd04b7000 stackSize=1004KB
| held mutexes= "mutator lock"(shared held)
native: #00 pc 00383b4d /apex/com.android.art/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits >&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+76)
native: #1 pc 0045ea0f /apex/com.android.art/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits >&, bool, BacktraceMap*, bool) const+214)
native: #2 pc 0047658d /apex/com.android.art/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+656)
native: #3 pc 00471af9 /apex/com.android.art/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+348)
native: #4 pc 00471067 /apex/com.android.art/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits >&, bool)+1222)
native: #5 pc 00470aab /apex/com.android.art/lib/libart.so (art::ThreadList::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits >&)+1138)
native: #6 pc 0042a771 /apex/com.android.art/lib/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits >&)+140)
native: #7 pc 0043a8c7 /apex/com.android.art/lib/libart.so (art::SignalCatcher::HandleSigQuit()+1034)
native: #8 pc 00439c8d /apex/com.android.art/lib/libart.so (art::SignalCatcher::Run(void*)+248)
native: #9 pc 00081047 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+40)
native: #10 pc 00039e33 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30)
(no managed stack frames)

"main" prio=5 tid=1 Native
| group="main" sCount=1 ucsCount=0 flags=1 obj=0x724e5d48 self=0xd92c6210
| sysTid=29149 nice=-10 cgrp=system sched=0/0 handle=0xe8321470
| state=S schedstat=( 2134506845 220278645 17992 ) utm=151 stm=61 core=5 HZ=100
| stack=0xff1e0000-0xff1e2000 stackSize=8188KB
| held mutexes=
native: #00 pc 00033fb4 /apex/com.android.runtime/lib/bionic/libc.so (syscall+28)
native: #1 pc 00039803 /apex/com.android.runtime/lib/bionic/libc.so (__futex_wait_ex(void volatile*, bool, int, bool, timespec const*)+94)
native: #2 pc 00080641 /apex/com.android.runtime/lib/bionic/libc.so (pthread_cond_wait+32)
native: #3 pc 001625d4 /data/app/~~MRnOHr-qfic_V8XDGlDUwg==/com.dotreader.dnovel-oArJHMOvQpzWoe87ekpRQQ==/lib/arm/librealm-jni.so (???)
native: #4 pc 0007ce1b /data/app/~~MRnOHr-qfic_V8XDGlDUwg==/com.dotreader.dnovel-oArJHMOvQpzWoe87ekpRQQ==/lib/arm/librealm-jni.so (???)
native: #5 pc 00090e03 /data/app/~~MRnOHr-qfic_V8XDGlDUwg==/com.dotreader.dnovel-oArJHMOvQpzWoe87ekpRQQ==/lib/arm/librealm-jni.so (???)
native: #6 pc 00091237 /data/app/~~MRnOHr-qfic_V8XDGlDUwg==/com.dotreader.dnovel-oArJHMOvQpzWoe87ekpRQQ==/lib/arm/librealm-jni.so (???)
native: #7 pc 00082349 /data/app/~~MRnOHr-qfic_V8XDGlDUwg==/com.dotreader.dnovel-oArJHMOvQpzWoe87ekpRQQ==/lib/arm/librealm-jni.so (???)
native: #8 pc 000748db /data/app/~~MRnOHr-qfic_V8XDGlDUwg==/com.dotreader.dnovel-oArJHMOvQpzWoe87ekpRQQ==/lib/arm/librealm-jni.so (???)
native: #9 pc 0002e025 /data/app/~~MRnOHr-qfic_V8XDGlDUwg==/com.dotreader.dnovel-oArJHMOvQpzWoe87ekpRQQ==/lib/arm/librealm-jni.so (Java_io_realm_internal_SharedRealm_nativeBeginTransaction+28)
at io.realm.internal.SharedRealm.nativeBeginTransaction(Native method)
at io.realm.internal.SharedRealm.s(SharedRealm.java:5)
at io.realm.a.x(BaseRealm.java:2)
at io.realm.a.beginTransaction(BaseRealm.java:1)
at io.realm.l.beginTransaction(Realm.java:1)
at com.pickuplight.dreader.common.database.a.f$a.a(ReportDataDao.java:4)
at com.pickuplight.dreader.common.database.a.f$a.onSuccess(ReportDataDao.java:1)
at h.r.a.e$a.run(CallbackDelegate.java:1)
at h.r.a.a$a.run(AndroidDeliver.java:1)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7818)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:980)

Steps & Code to Reproduce

1). Launch 3rd Apps in a mobile device which user kernel 5.10
2) Give Apps runtime permission;

Expect: Apps run successfully;

Actual: Apps ANR.
Note: The issue just can reproduce on mobile device which uses kernel5.10.

Version of Realm and tooling

Realm version(s): 10.0.1

Realm Sync feature enabled: Yes

Android Studio version: ?

Android Build Tools version: ?

Gradle version: ?

Which Android version and device(s): ?

@Shirleynice Shirleynice changed the title Apps ANR because of librealm-jni.so blocked Apps ANR because of librealm-jni.so(10.0.1) blocked on mobile device which based on kernel 5.10 Jun 27, 2021
@Shirleynice Shirleynice changed the title Apps ANR because of librealm-jni.so(10.0.1) blocked on mobile device which based on kernel 5.10 Apps ANR because of librealm-jni.so(10.0.1) blocked on mobile devices which bases on kernel 5.10 Jun 28, 2021
@cmelchior
Copy link
Contributor

Hi @Shirleynice

There is a known issue in the 5.x Linux kernel. It sounds like what you could be hitting. We shipped a fix to this in 10.5.1: https://github.com/realm/realm-java/blob/master/CHANGELOG.md#1051-2021-06-14

Can you try to upgrade and see if that fixes the problem?

@sync-by-unito sync-by-unito bot added the More-information-needed More information needed from the reporter. The issue will autoclose if no more information is given. label Jun 29, 2021
@Shirleynice
Copy link
Author

Hi cmelchior,

Thanks for your feedback. Because the app is 3rd, we don't have source code. Would you please provide the fix gerrit?

Thanks,
Xiaoli

@no-response no-response bot removed the More-information-needed More information needed from the reporter. The issue will autoclose if no more information is given. label Jul 2, 2021
@bmunkholm
Copy link
Contributor

@Shirleynice If you don't have the source code the app, there is nothing we can do unfortunately. You will have to get the author of the app to use Realm version 10.5.1 or later.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 15, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants