Tencent / MMKV

An efficient, small mobile key-value storage framework developed by WeChat. Works on Android, iOS, macOS, Windows, and POSIX.
Other
17.39k stars 1.91k forks source link

A native crash in colorOS-v1.3.2 #1206

Closed Vensent closed 7 months ago

Vensent commented 10 months ago

The language of MMKV

Kotlin

The version of MMKV

1.3.2

The platform of MMKV

colorOS based on Android

The installation of MMKV

Maven

What's the issue?

a native crash

What's the log of MMKV when that happened?

********** Crash dump: **********
Build fingerprint: 'OPPO/PFTM20/OP526D:13/TP1A.220905.001/S.129fad5-50d0:user/release-keys'
#00 0x0000000000078668 /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+296) (BuildId: cd953571180b7f5f8ae5570dad29595f)
#01 0x000000000004b1dc /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/lib/arm64/libmmkv.so (BuildId: 7b8c8da9f4a766122906c0d5262afe49dc56c948)
                                                                                                                           memcpy(void*, void const* pass_object_size0, unsigned long)
                                                                                                                           /Users/lingol/Library/Android/sdk/ndk/25.0.8775105/toolchains/llvm/prebuilt/darwin-x86_64/sysroot/usr/include/bits/fortify/string.h:61:12
                                                                                                                           mmkv::CodedOutputData::writeRawData(mmkv::MMBuffer const&)
                                                                                                                           /Users/lingol/Developer/mmkv/Core/CodedOutputData.cpp:140:5
#02 0x00000000000459ac /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/lib/arm64/libmmkv.so (BuildId: 7b8c8da9f4a766122906c0d5262afe49dc56c948)
                                                                                                                           MMKV::doAppendDataWithKey(mmkv::MMBuffer const&, mmkv::MMBuffer const&, bool, unsigned int)
                                                                                                                           /Users/lingol/Developer/mmkv/Core/MMKV_IO.cpp:840:19
#03 0x0000000000045444 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/lib/arm64/libmmkv.so (BuildId: 7b8c8da9f4a766122906c0d5262afe49dc56c948)
                                                                                                                           MMKV::appendDataWithKey(mmkv::MMBuffer const&, mmkv::KeyValueHolder const&, bool)
                                                                                                                           /Users/lingol/Developer/mmkv/Core/MMKV_IO.cpp:926:12
#04 0x0000000000044d44 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/lib/arm64/libmmkv.so (BuildId: 7b8c8da9f4a766122906c0d5262afe49dc56c948)
                                                                                                                           MMKV::setDataForKey(mmkv::MMBuffer&&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, bool)
                                                                                                                           /Users/lingol/Developer/mmkv/Core/MMKV_IO.cpp:682:27
#05 0x00000000000392c0 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/lib/arm64/libmmkv.so (BuildId: 7b8c8da9f4a766122906c0d5262afe49dc56c948)
                                                                                                                           MMKV::set(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, unsigned int)
                                                                                                                           /Users/lingol/Developer/mmkv/Core/MMKV.cpp:634:16
#06 0x000000000003296c /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/lib/arm64/libmmkv.so (BuildId: 7b8c8da9f4a766122906c0d5262afe49dc56c948)
                                                                                                                           mmkv::encodeString(_JNIEnv*, _jobject*, long, _jstring*, _jstring*)
                                                                                                                           /Users/lingol/Developer/mmkv/Android/MMKV/mmkv/src/main/cpp/native-bridge.cpp:558:35
#07 0x000000000021a354 /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#08 0x000000000020a910 /apex/com.android.art/lib64/libart.so (nterp_helper+5648) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#09 0x00000000002a0690 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.tencent.mmkv.MMKV.putString+4)
#10 0x000000000020b074 /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#11 0x00000000001b757a /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.oplus.mainlibcommon.SharedPreferencesProxy.K+42)
#12 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#13 0x00000000001b74c6 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.oplus.mainlibcommon.SharedPreferencesProxy.L+22)
#14 0x0000000000209ae4 /apex/com.android.art/lib64/libart.so (nterp_helper+2020) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#15 0x0000000000231c70 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.coloros.gamespaceui.config.ServerConfigManager$a.h+100)
#16 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#17 0x00000000002321b2 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.coloros.gamespaceui.config.ServerConfigManager$pullSelfAccSupportList$1.invoke+22)
#18 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#19 0x0000000000232160 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.coloros.gamespaceui.config.ServerConfigManager$pullSelfAccSupportList$1.invoke+16)
#20 0x000000000020b074 /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#21 0x0000000000230bde /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.coloros.gamespaceui.config.CloudConfigService$c.a+106)
#22 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#23 0x0000000000230b3c /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.coloros.gamespaceui.config.CloudConfigService$c.invoke+4)
#24 0x000000000020b074 /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#25 0x000000000048d488 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.heytap.nearx.cloudconfig.observable.e.b+4)
#26 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#27 0x000000000048d41c /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.heytap.nearx.cloudconfig.observable.e.invoke+0)
#28 0x000000000020b074 /apex/com.android.art/lib64/libart.so (nterp_helper+7540) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#29 0x000000000048c9e0 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.heytap.nearx.cloudconfig.observable.Observable$a.c+8)
#30 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#31 0x000000000048c9c0 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.heytap.nearx.cloudconfig.observable.Observable$a.a+0)
#32 0x0000000000209334 /apex/com.android.art/lib64/libart.so (nterp_helper+52) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#33 0x000000000048cbc8 /data/app/~~JvlY7L8ZjfqHhtpLs7En0Q==/com.oplus.games-gvIwKkB66yAiWVQ7m9r2RQ==/base.apk (com.heytap.nearx.cloudconfig.observable.Observable$observeOn$1$call$1$a.run+16)
#34 0x000000000032e410 /system/framework/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor.runWorker+976) (BuildId: 1b9d4f55957fb3d4b1f58b5589e6d4dbe18626b8)
#35 0x000000000032b1f8 /system/framework/arm64/boot.oat (java.util.concurrent.ThreadPoolExecutor$Worker.run+72) (BuildId: 1b9d4f55957fb3d4b1f58b5589e6d4dbe18626b8)
#36 0x0000000000191cb0 /system/framework/arm64/boot.oat (java.lang.Thread.run+80) (BuildId: 1b9d4f55957fb3d4b1f58b5589e6d4dbe18626b8)
#37 0x000000000021096c /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#38 0x000000000027af68 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+184) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#39 0x0000000000624cac /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#40 0x000000000066de60 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1296) (BuildId: f9461dad2df8cf4e9114de5c4ff5caf5)
#41 0x00000000000eb720 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: cd953571180b7f5f8ae5570dad29595f)
#42 0x000000000007e2d0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: cd953571180b7f5f8ae5570dad29595f)
kaitian521 commented 10 months ago

Do you have other logcat information?

Vensent commented 10 months ago

Do you have other logcat information?

No.

kaitian521 commented 10 months ago

Does this crash occur stable in your devices?

lingol commented 10 months ago

You should provide logs of MMKV.

kaitian521 commented 10 months ago

It is better to provide full logs around the crash

lingol commented 10 months ago

And when did you crash?

IntegratedMachine commented 10 months ago

I will try to find new crash log later.

Vensent commented 10 months ago

Does this crash occur stable in your devices?

(我怕英语表述不准确哈,换成中文)这个是我们把app发布到线上之后,出现的单用户崩溃,大概率是短时间内崩溃了上千次。只有一个用户出现了,所以很影响我们监控的数据表现。(我们app的日活大概在千万级别) 没有办法抓到日志,只抓到了上面提到的报错堆栈,你们看看有没有可能是因为空间不足的原因?

Vensent commented 10 months ago

I will try to find new crash log later.

Hi, can you attach some crash logs?

lingol commented 10 months ago

Does this crash occur stable in your devices?

(我怕英语表述不准确哈,换成中文)这个是我们把app发布到线上之后,出现的单用户崩溃,大概率是短时间内崩溃了上千次。只有一个用户出现了,所以很影响我们监控的数据表现。(我们app的日活大概在千万级别) 没有办法抓到日志,只抓到了上面提到的报错堆栈,你们看看有没有可能是因为空间不足的原因?

If there are only a few users who repeatedly crash in the same stacks, likely, they didn't have access to the MMKV folder (or its parent folder in that case). Or the filesystem is corrupted. Anyway, you should get logs of MMKV to verify.

Vensent commented 10 months ago

Does this crash occur stable in your devices?

(我怕英语表述不准确哈,换成中文)这个是我们把app发布到线上之后,出现的单用户崩溃,大概率是短时间内崩溃了上千次。只有一个用户出现了,所以很影响我们监控的数据表现。(我们app的日活大概在千万级别) 没有办法抓到日志,只抓到了上面提到的报错堆栈,你们看看有没有可能是因为空间不足的原因?

If there are only a few users who repeatedly crash in the same stacks, likely, they didn't have access to the MMKV folder (or its parent folder in that case). Or the filesystem is corrupted. Anyway, you should get logs of MMKV to verify.

Is this your guess? Or can you verify your speculation on your test phones?

lingol commented 7 months ago

Closed due to inactive.