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

easy anr on some vivo device #365

Closed
shaopx opened this issue Dec 19, 2019 · 3 comments
Closed

easy anr on some vivo device #365

shaopx opened this issue Dec 19, 2019 · 3 comments

Comments

@shaopx
Copy link

shaopx commented Dec 19, 2019

The language of MMKV

Java, Kotlin

The version of MMKV

e.g. v1.0.10

The platform of MMKV

Android

The installation of MMKV

AAR Package

What's the issue?

anr when reading and writing by muti thread

Post the outputs or screenshots for errors.

Explain what you want by example or code in English.
If you have a crash/OOM/ANR on Android, please provide symbolize stack traces. https://developer.android.com/ndk/guides/ndk-stack.html

"global-default-pool-2-3" prio=5 tid=20 Native
| group="main" sCount=1 dsCount=0 flags=1 obj=0x14a41120 self=0xe4ff5600
| sysTid=6301 nice=10 cgrp=default sched=0/0 handle=0xd0148970
| state=S schedstat=( 290786874 10285038264 833 ) utm=21 stm=8 core=7 HZ=100
| stack=0xd0046000-0xd0048000 stackSize=1038KB
| held mutexes=
kernel: __switch_to+0x90/0xc4
kernel: futex_wait_queue_me+0xc4/0x13c
kernel: futex_wait+0xe4/0x204
kernel: do_futex+0x170/0x58c
kernel: compat_SyS_futex+0xf0/0x174
kernel: cpu_switch_to+0x34c/0x22c0
native: #00 pc 00018dc4 /system/lib/libc.so (syscall+28)
native: #1 pc 000b75cd /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+80)
native: #2 pc 002abbdd /system/lib/libart.so (art::JNI::NewStringUTF(_JNIEnv*, char const*)+296)
native: #3 pc 000020ef /data/app/com.smile.xxx-r3Ee0Oidsb7Xg6Hj-a7zVg==/lib/arm/libmmkv.so (???)
native: #4 pc 00009021 /data/app/com.smile.xxx-r3Ee0Oidsb7Xg6Hj-a7zVg==/lib/arm/libmmkv.so (???)
native: #5 pc 000043a7 /data/app/com.smile.xxx-r3Ee0Oidsb7Xg6Hj-a7zVg==/lib/arm/libmmkv.so (???)
native: #6 pc 00003ce1 /data/app/com.smile.xxx-r3Ee0Oidsb7Xg6Hj-a7zVg==/lib/arm/libmmkv.so (???)
native: #7 pc 00004ce5 /data/app/com.smile.xxx-r3Ee0Oidsb7Xg6Hj-a7zVg==/lib/arm/libmmkv.so (???)
native: #8 pc 00002847 /data/app/com.smile.xxx-r3Ee0Oidsb7Xg6Hj-a7zVg==/lib/arm/libmmkv.so (???)
native: #9 pc 0000dc1d /data/app/com.smile.xxx-r3Ee0Oidsb7Xg6Hj-a7zVg==/oat/arm/base.odex (Java_com_tencent_mmkv_MMKV_getMMKVWithID__Ljava_lang_String_2ILjava_lang_String_2Ljava_lang_String_2+172)
at com.tencent.mmkv.MMKV.getMMKVWithID(Native method)
at com.tencent.mmkv.MMKV.mmkvWithID(kSourceFile:50790405)

"main" prio=5 tid=1 Blocked
| group="main" sCount=1 dsCount=0 flags=1 obj=0x72fee4a8 self=0xefcb7000
| sysTid=6187 nice=0 cgrp=default sched=0/0 handle=0xf6f514a4
| state=S schedstat=( 1191789191 3496319239 2179 ) utm=83 stm=36 core=4 HZ=100
| stack=0xff370000-0xff372000 stackSize=8MB
| held mutexes=
at com.yxcorp.preferences.a.a(kSourceFile:51511298)

  • waiting to lock <0x073cc156> (a java.lang.Class<com.yxcorp.preferences.a>) held by thread 20
    at com.yxcorp.xxx.init.module.-$$Lambda$1sUAtULuN8GKb7b_lJfKlL0JVLo.obtain(kSourceFile:-1)
    at com.yxcorp.experiment.r.a(kSourceFile:1048607)
  • locked <0x0adb4f24> (a com.yxcorp.experiment.r)

device list with this anr:
vivo U1 全网通版(vivo(V1818A))
vivo(vivo Y85A)
vivo Y7s 全网通版(vivo(V1913A))
vivo(vivo X20)
vivo(vivo X21A)
vivo(vivo X9s)

@lingol
Copy link
Collaborator

lingol commented Dec 19, 2019

native: #1 pc 000b75cd /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+80)
native: #2 pc 002abbdd /system/lib/libart.so (art::JNI::NewStringUTF(_JNIEnv*, char const*)+296)

As far as your call stacks show, the lock is inside JNI runtime, when creating a Java String object from c string. There's nothing we can do.
Maybe you should contact VIVO to solve that problem.

@lingol
Copy link
Collaborator

lingol commented Dec 19, 2019

A little hint for you:
Google these keywords NewStringUTF, WaitHoldingLocks.

@lingol lingol closed this as completed Dec 19, 2019
@shaopx
Copy link
Author

shaopx commented Dec 20, 2019

thanks for your help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants