Tencent / MMKV

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

Scudo ERROR: invalid chunk state when deallocating address 0x<sanitized> #1019

Closed paopao-chen closed 1 year ago

paopao-chen commented 1 year ago

Note:

An crash issue will be ignored & closed in a week without logs.

The language of MMKV

Java

The version of MMKV

v1.2.12

The platform of MMKV

Android

The installation of MMKV

Maven

What's the issue?

Scudo ERROR: invalid chunk state when deallocating address 0x

What's the log of MMKV when that happened?


pid: 0, tid: 13175 >>> com.dubox.drive <<<

backtrace:

00 pc 0x00000000000518dc /apex/com.android.runtime/lib64/bionic/libc.so (abort+168)

01 pc 0x000000000004165c /apex/com.android.runtime/lib64/bionic/libc.so (scudo::die()+12)

02 pc 0x0000000000041d74 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::ScopedErrorReport::~ScopedErrorReport()+36)

03 pc 0x0000000000041fc8 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::reportInvalidChunkState(scudo::AllocatorAction, void*)+80)

04 pc 0x0000000000043664 /apex/com.android.runtime/lib64/bionic/libc.so (scudo::Allocator<scudo::AndroidConfig, &(scudo_malloc_postinit)>::deallocate(void*, scudo::Chunk::Origin, unsigned long, unsigned long)+316)

05 pc 0x0000000000017a8c /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/lib/arm64/libmmkv.so

06 pc 0x000000000043e154 /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148)

07 pc 0x0000000000209398 /apex/com.android.art/lib64/libart.so (nterp_helper+152)

08 pc 0x0000000002dfd152 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.tencent.mmkv.MMKV.doInitialize+30)

09 pc 0x0000000000209334 /apex/com.android.art/lib64/libart.so (nterp_helper+52)

10 pc 0x0000000002dfd3fa /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.tencent.mmkv.MMKV.initialize+38)

11 pc 0x0000000000209334 /apex/com.android.art/lib64/libart.so (nterp_helper+52)

12 pc 0x00000000011e2784 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.kernel.architecture.config._____.load+76)

13 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

14 pc 0x00000000011e2a50 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.kernel.architecture.config._____.get)

15 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

16 pc 0x00000000011e3316 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.kernel.architecture.config._.getString+10)

17 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

18 pc 0x00000000011e32f0 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.kernel.architecture.config._.getString+4)

19 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

20 pc 0x0000000001da2dc8 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.security.URLHandler.getSK+12)

21 pc 0x0000000000209398 /apex/com.android.art/lib64/libart.so (nterp_helper+152)

22 pc 0x0000000001da2df6 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.security.URLHandler.+18)

23 pc 0x0000000000434a00 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+576)

24 pc 0x0000000000416fb0 /apex/com.android.art/lib64/libart.so (art::ClassLinker::InitializeClass(art::Thread*, art::Handle, bool, bool)+5532)

25 pc 0x0000000000421d6c /apex/com.android.art/lib64/libart.so (NterpGetClassOrAllocateObject+2860)

26 pc 0x000000000020f480 /apex/com.android.art/lib64/libart.so (nterp_get_class_or_allocate_object+48)

27 pc 0x00000000002019d0 /apex/com.android.art/lib64/libart.so (nterp_op_new_instance+80)

28 pc 0x000000000190b7fc /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.network.request.____.)

29 pc 0x0000000000434a00 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+576)

30 pc 0x0000000000416fb0 /apex/com.android.art/lib64/libart.so (art::ClassLinker::InitializeClass(art::Thread*, art::Handle, bool, bool)+5532)

31 pc 0x00000000003844fc /apex/com.android.art/lib64/libart.so (art::ClassLinker::EnsureInitialized(art::Thread*, art::Handle, bool, bool)+100)

32 pc 0x00000000004716dc /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+2292)

33 pc 0x000000000043e288 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)

34 pc 0x0000000000209398 /apex/com.android.art/lib64/libart.so (nterp_helper+152)

35 pc 0x000000000190bb84 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.network.request.___.intercept+168)

36 pc 0x000000000020b074 /apex/com.android.art/lib64/libart.so (nterp_helper+7540)

37 pc 0x00000000034d0714 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (okhttp3.internal.http.RealInterceptorChain.proceed+316)

38 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

39 pc 0x00000000034d05bc /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (okhttp3.internal.http.RealInterceptorChain.proceed+12)

40 pc 0x000000000020b120 /apex/com.android.art/lib64/libart.so (nterp_helper+7712)

41 pc 0x00000000034c6ba2 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (okhttp3.RealCall.getResponseWithInterceptorChain+230)

42 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

43 pc 0x00000000034c6a02 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (okhttp3.RealCall.execute+62)

44 pc 0x000000000043476c /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556)

45 pc 0x0000000000563068 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, true>(art::ArtMethod, art::Thread, art::ShadowFrame&, art::Instruction const, unsigned short, art::JValue)+2480)

46 pc 0x000000000022fb1c /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+2216)

47 pc 0x00000000004409d8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8)

48 pc 0x00000000026b61ec /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.google.firebase.perf.network.FirebasePerfOkHttpClient.execute)

49 pc 0x0000000000471bd4 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.18358736361643412929)+396)

50 pc 0x0000000000471238 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+1104)

51 pc 0x000000000043e288 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88)

52 pc 0x0000000000209398 /apex/com.android.art/lib64/libart.so (nterp_helper+152)

53 pc 0x00000000034eca6a /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (retrofit2.OkHttpCall.execute+138)

54 pc 0x000000000020b074 /apex/com.android.art/lib64/libart.so (nterp_helper+7540)

55 pc 0x00000000034ec3dc /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall.execute+4)

56 pc 0x000000000020b074 /apex/com.android.art/lib64/libart.so (nterp_helper+7540)

57 pc 0x0000000001145660 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.domain.___.JF+56)

58 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

59 pc 0x0000000001145708 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.domain.__.)

60 pc 0x0000000000209334 /apex/com.android.art/lib64/libart.so (nterp_helper+52)

61 pc 0x000000000114540c /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (com.dubox.drive.domain.DomainUpdater$updateFromServer$1.invokeSuspend+24)

62 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

63 pc 0x00000000032f8080 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith+28)

64 pc 0x000000000020b120 /apex/com.android.art/lib64/libart.so (nterp_helper+7712)

65 pc 0x00000000033f7c72 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (kotlinx.coroutines.ag.run+342)

66 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

67 pc 0x000000000340a768 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (kotlinx.coroutines.scheduling.CoroutineScheduler.__)

68 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

69 pc 0x0000000003409770 /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (kotlinx.coroutines.scheduling.CoroutineScheduler$.+28)

70 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

71 pc 0x0000000003409a0c /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (kotlinx.coroutines.scheduling.CoroutineScheduler$___.runWorker+56)

72 pc 0x000000000020a254 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)

73 pc 0x00000000034099bc /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/oat/arm64/base.vdex (kotlinx.coroutines.scheduling.CoroutineScheduler$___.run)

74 pc 0x000000000043476c /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+556)

75 pc 0x0000000000466538 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread, unsigned int, unsigned int, art::JValue, char const)+156)

76 pc 0x0000000000466220 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject, art::ArtMethod, jvalue const)+388)

77 pc 0x0000000000613a44 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1668)

78 pc 0x00000000000b6974 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)

79 pc 0x0000000000053210 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68)

lingol commented 1 year ago

Please provide symbolized native call stacks, especially this call stack.

https://github.com/Tencent/MMKV/pull/5 pc 0x0000000000017a8c /data/app/~~7Sy4VHeWzDZTPY7Aziq3CQ==/com.dubox.drive-vbnJMu44WtDsDuWFKQrZXg==/lib/arm64/libmmkv.so

paopao-chen commented 1 year ago

感谢~ 不是MMKV的问题,最后发现是自己的库多进程初始化时存在的问题

MichaelJokAr commented 4 months ago

@paopao-chen 你们怎么解决的呀?只在主进程初始化吗