alibaba / alibaba/weex

[Android][Dev-tool] WXDebugJsBridge jsHandleCallCreateBody crash

Open
#3,308 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
18.5k
Forks
2.1k
PR merge metrics
No merged PRs in 30d

Description

在weex jsdebug时候发现调用jsHandleCallCreateBody时出现crash
信息如下:
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] All threads:
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] DALVIK THREADS (125):
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] "WeexJSBridgeThread" prio=5 tid=26 Runnable
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] | group="" sCount=0 dsCount=0 flags=0 obj=0x12e07ad0 self=0x79b8545000
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] | sysTid=10391 nice=0 cgrp=default sched=0/0 handle=0x795ad7cd50
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] | state=R schedstat=( 2593458430 494875630 3723 ) utm=181 stm=78 core=4 HZ=100
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] | stack=0x795ac7a000-0x795ac7c000 stackSize=1039KB
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] | held mutexes= "abort lock" "mutator lock"(shared held)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #00 pc 00000000004126f8 /apex/com.android.runtime/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+140)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #01 pc 00000000004fa068 /apex/com.android.runtime/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream>&, bool, BacktraceMap*, bool) const+512)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #02 pc 00000000005149ac /apex/com.android.runtime/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+828)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #03 pc 000000000050d7d0 /apex/com.android.runtime/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+456)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #04 pc 000000000050ccb4 /apex/com.android.runtime/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream>&, bool)+1964)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #05 pc 00000000004ba040 /apex/com.android.runtime/lib64/libart.so (art::Runtime::Abort(char const*)+1452)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #06 pc 000000000000b458 /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+580)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #07 pc 00000000003786ec /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1584)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #08 pc 0000000000378910 /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+108)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #09 pc 000000000036ad30 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+136)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #10 pc 000000000036e398 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::ScopedCheck::CheckMethodAndSig(art::ScopedObjectAccess&, _jobject*, _jclass*, _jmethodID*, art::Primitive::Type, art::InvokeType)+1716)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #11 pc 000000000036cb50 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const*, _JNIEnv*, _jobject*, _jclass*, _jmethodID*, std::__va_list, art::Primitive::Type, art::InvokeType)+748)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #12 pc 000000000035b484 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+72)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #13 pc 0000000000085b20 /data/app/com.umetrip.android.msky.app-TZE5_0yPWvYrEBoKVhNPTQ==/lib/arm64/libweexcore.so (_JNIEnv::CallVoidMethod(_jobject*, _jmethodID*, ...)+104)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #14 pc 00000000000bc6e0 /data/app/com.umetrip.android.msky.app-TZE5_0yPWvYrEBoKVhNPTQ==/lib/arm64/libweexcore.so (WeexCore::WXBridge::SetPageDirty(_JNIEnv*, char const*, bool)+144)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #15 pc 0000000000053618 /data/app/com.umetrip.android.msky.app-TZE5_0yPWvYrEBoKVhNPTQ==/lib/arm64/libweexcore.so (WeexCore::RenderPage::set_is_dirty(bool)+256)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #16 pc 00000000000533e8 /data/app/com.umetrip.android.msky.app-TZE5_0yPWvYrEBoKVhNPTQ==/lib/arm64/libweexcore.so (WeexCore::RenderPage::CreateRootRender(WeexCore::RenderObject*)+40)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #17 pc 000000000004e30c /data/app/com.umetrip.android.msky.app-TZE5_0yPWvYrEBoKVhNPTQ==/lib/arm64/libweexcore.so (WeexCore::RenderManager::CreatePage(std::__ndk1::basic_string, std::__ndk1::allocator> const&, char const*)+892)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #18 pc 000000000007de78 /data/app/com.umetrip.android.msky.app-TZE5_0yPWvYrEBoKVhNPTQ==/lib/arm64/libweexcore.so (WeexCore::CoreSideInScript::CreateBody(char const*, char const*, int)+228)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #19 pc 0000000000086b68 /data/app/com.umetrip.android.msky.app-TZE5_0yPWvYrEBoKVhNPTQ==/lib/arm64/libweexcore.so (???)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #20 pc 0000000000140350 /apex/com.android.runtime/lib64/libart.so (art_quick_generic_jni_trampoline+144)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #21 pc 0000000000137334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #22 pc 0000000000145fec /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #23 pc 00000000002e38c0 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #24 pc 00000000002deb20 /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+892)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #25 pc 00000000005a1ce4 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+648)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #26 pc 0000000000131814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #27 pc 000000000022dd86 [anon:dalvik-classes5.dex extracted in memory from /data/app/com.umetrip.android.msky.app-TZE5_0yPWvYrEBoKVhNPTQ==/base.apk!classes5.dex] (com.taobao.weex.bridge.WXDebugJsBridge.jsHandleCallCreateBody+18)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #28 pc 00000000005a1fa4 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+1352)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #29 pc 0000000000131814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #30 pc 0000000000249ac8 [anon:dalvik-classes5.dex extracted in memory from /data/app/com.umetrip.android.msky.app-TZE5_0yPWvYrEBoKVhNPTQ==/base.apk!classes5.dex] (com.taobao.weex.devtools.inspector.protocol.module.WxDebug$4.run+56)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #31 pc 00000000002b4bd4 /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.16080731775389751+240)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #32 pc 000000000059324c /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1032)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #33 pc 0000000000140468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #34 pc 00000000021b00c8 /memfd:/jit-cache (deleted) (com.taobao.weex.common.WXThread$SafeRunnable.run+136)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #35 pc 0000000002147e34 /memfd:/jit-cache (deleted) (android.os.Handler.handleCallback+68)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #36 pc 00000000021495f0 /memfd:/jit-cache (deleted) (android.os.Handler.dispatchMessage+64)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #37 pc 0000000000137334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #38 pc 0000000000145fec /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #39 pc 00000000002e38c0 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #40 pc 00000000002deb20 /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+892)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #41 pc 00000000005a1ce4 /apex/com.android.runtime/lib64/libart.so (MterpInvokeVirtual+648)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #42 pc 0000000000131814 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_virtual+20)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #43 pc 0000000000347606 /system/framework/framework.jar (android.os.Looper.loop+526)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #44 pc 00000000005a4a54 /apex/com.android.runtime/lib64/libart.so (MterpInvokeStatic+1040)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #45 pc 0000000000131994 /apex/com.android.runtime/lib64/libart.so (mterp_op_invoke_static+20)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #46 pc 0000000000319fd8 /system/framework/framework.jar (android.os.HandlerThread.run+56)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #47 pc 00000000002b4bd4 /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.16080731775389751+240)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #48 pc 000000000059324c /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+1032)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #49 pc 0000000000140468 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #50 pc 0000000000137334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #51 pc 0000000000145fec /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+244)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #52 pc 00000000004b1c38 /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #53 pc 00000000004b2d4c /apex/com.android.runtime/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+416)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #54 pc 00000000004f3710 /apex/com.android.runtime/lib64/libart.so (art::Thread::CreateCallback(void*)+1176)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #55 pc 00000000000da1a0 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] native: #56 pc 00000000000769d4 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] at com.taobao.weex.bridge.WXDebugJsBridge.jsHandleCallCreateBody(Native method)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] at com.taobao.weex.bridge.WXDebugJsBridge.jsHandleCallCreateBody(WXDebugJsBridge.java:64)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] at com.taobao.weex.devtools.inspector.protocol.module.WxDebug$4.run(WxDebug.java:204)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] at com.taobao.weex.common.WXThread$SafeRunnable.run(WXThread.java:70)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] at android.os.Handler.handleCallback(Handler.java:883)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] at android.os.Handler.dispatchMessage(Handler.java:100)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] at android.os.Looper.loop(Looper.java:227)
2022-07-06 15:45:20.888 10329-10391: runtime.cc:630] at android.os.HandlerThread.run(HandlerThread.java:67)

这个需要怎么来解决

Contributor guide

Open the contributing guide

Research direction

Start with the reported Android JS-debug call WXDebugJsBridge.jsHandleCallCreateBody and trace the stack through CoreSideInScript::CreateBody, RenderPage::CreateRootRender, and WXBridge::SetPageDirty. Reproduce the crash with JS debugging enabled, then verify that the JNI call completes without the reported ART abort.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, cpp
Domain
devtools, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.