[Android][Dev-tool] WXDebugJsBridge jsHandleCallCreateBody crash
- 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
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