jeremyczhen / fdbus

FDBus - Fast Distributed Bus
https://blog.csdn.net/jeremy_cz/article/details/89060291
164 stars 85 forks source link

JNI DETECTED ERROR IN APPLICATION: use of invalid jobject 0x8ce42550' #13

Open manyfish007 opened 4 years ago

manyfish007 commented 4 years ago

JNI跑起来的时候。 client Subscribe时, Server会响应到CJniServer::onSubscribe(CBaseJob::Ptr &msg_ref)。 env->CallVoidMethod(mJavaServer, CFdbusServerParam::mOnSubscribe, msg->session(), msg_handle, obj_arr_list );

-27 21:28:53.787 9079 9079 F DEBUG : Revision: '0' 03-27 21:28:53.787 9079 9079 F DEBUG : ABI: 'arm' 03-27 21:28:53.787 9079 9079 F DEBUG : pid: 8992, tid: 9066, name: Thread-4 >>> com.fdbus.server <<< 03-27 21:28:53.787 9079 9079 F DEBUG : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- 03-27 21:28:53.787 9079 9079 F DEBUG : Abort message: 'java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: use of invalid jobject 0x8ce42550' 03-27 21:28:53.787 9079 9079 F DEBUG : r0 00000000 r1 0000236a r2 00000006 r3 00000008 03-27 21:28:53.787 9079 9079 F DEBUG : r4 00002320 r5 0000236a r6 8ce42024 r7 0000010c 03-27 21:28:53.787 9079 9079 F DEBUG : r8 00000000 r9 a841c740 r10 0000000a r11 a831f63e 03-27 21:28:53.787 9079 9079 F DEBUG : ip 8ce41fc0 sp 8ce42010 lr aa234e69 pc aa22ccb6 03-27 21:28:53.799 9079 9079 F DEBUG : 03-27 21:28:53.799 9079 9079 F DEBUG : backtrace: 03-27 21:28:53.799 9079 9079 F DEBUG : #00 pc 0001ccb6 /system/lib/libc.so (abort+58) 03-27 21:28:53.799 9079 9079 F DEBUG : #01 pc 0034db4f /system/lib/libart.so (art::Runtime::Abort(char const)+910) 03-27 21:28:53.799 9079 9079 F DEBUG : #02 pc 000071b3 /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+494) 03-27 21:28:53.799 9079 9079 F DEBUG : #03 pc 0023203f /system/lib/libart.so (art::JavaVMExt::JniAbort(char const, char const)+1214) 03-27 21:28:53.799 9079 9079 F DEBUG : #04 pc 0023220b /system/lib/libart.so (art::JavaVMExt::JniAbortF(char const, char const, ...)+66) 03-27 21:28:53.799 9079 9079 F DEBUG : #05 pc 003733d9 /system/lib/libart.so (art::Thread::DecodeJObject(_jobject) const+568) 03-27 21:28:53.799 9079 9079 F DEBUG : #06 pc 000c363d /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckInstance(art::ScopedObjectAccess&, art::(anonymous namespace)::ScopedCheck::InstanceKind, _jobject, bool)+72) 03-27 21:28:53.799 9079 9079 F DEBUG : #07 pc 000c29a7 /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+442) 03-27 21:28:53.799 9079 9079 F DEBUG : #08 pc 000c2b1b /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+814) 03-27 21:28:53.799 9079 9079 F DEBUG : #09 pc 000c20f5 /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const, art::(anonymous namespace)::JniValueType)+624) 03-27 21:28:53.800 9079 9079 F DEBUG : #10 pc 000c6a2f /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CheckCallArgs(art::ScopedObjectAccess&, art::(anonymous namespace)::ScopedCheck&, _JNIEnv, _jobject, _jclass, _jmethodID, art::InvokeType, art::(anonymous namespace)::VarArgs const)+94) 03-27 21:28:53.800 9079 9079 F DEBUG : #11 pc 000c5c5f /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallMethodV(char const, _JNIEnv, _jobject, _jclass, _jmethodID, std::__va_list, art::Primitive::Type, art::InvokeType)+506) 03-27 21:28:53.800 9079 9079 F DEBUG : #12 pc 000b767d /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::CallVoidMethodV(_JNIEnv, _jobject, _jmethodID, std::va_list)+44) 03-27 21:28:53.800 9079 9079 F DEBUG : #13 pc 000cc351 /data/app/com.fdbus.server-Py4O7px5unZO89fQrFOHdg==/lib/arm/libfdbus-jni.so (_JNIEnv::CallVoidMethod(_jobject, _jmethodID, ...)+76) 03-27 21:28:53.800 9079 9079 F DEBUG : #14 pc 000cdd61 /data/app/com.fdbus.server-Py4O7px5unZO89fQrFOHdg==/lib/arm/libfdbus-jni.so (CJniServer::onSubscribe(std::ndk1::shared_ptr&)+712) 03-27 21:28:53.800 9079 9079 F DEBUG : #15 pc 00099831 /data/app/com.fdbus.server-Py4O7px5unZO89fQrFOHdg==/lib/arm/libfdbus-jni.so (CFdbBaseObject::doSubscribe(std::ndk1::shared_ptr&)+36) 03-27 21:28:53.800 9079 9079 F DEBUG : #16 pc 000abc71 /data/app/com.fdbus.server-Py4O7px5unZO89fQrFOHdg==/lib/arm/libfdbus-jni.so (CFdbSession::doSubscribeReq(NFdbBase::CFdbMessageHeader&, CFdbMessage::CFdbMsgPrefix&, unsigned char, bool)+820) 03-27 21:28:53.800 9079 9079 F DEBUG : #17 pc 000ab345 /data/app/com.fdbus.server-Py4O7px5unZO89fQrFOHdg==/lib/arm/libfdbus-jni.so (CFdbSession::onInput(bool&)+480) 03-27 21:28:53.800 9079 9079 F DEBUG : #18 pc 000c14f1 /data/app/com.fdbus.server-Py4O7px5unZO89fQrFOHdg==/lib/arm/libfdbus-jni.so (CFdEventLoop::processWatches()+528) 03-27 21:28:53.800 9079 9079 F DEBUG : #19 pc 000c19c9 /data/app/com.fdbus.server-Py4O7px5unZO89fQrFOHdg==/lib/arm/libfdbus-jni.so (CFdEventLoop::dispatch()+144) 03-27 21:28:53.800 9079 9079 F DEBUG : #20 pc 000be4cd /data/app/com.fdbus.server-Py4O7px5unZO89fQrFOHdg==/lib/arm/libfdbus-jni.so (CBaseWorker::run()+116) 03-27 21:28:53.800 9079 9079 F DEBUG : #21 pc 000b139f /data/app/com.fdbus.server-Py4O7px5unZO89fQrFOHdg==/lib/arm/libfdbus-jni.so (CBaseThread::threadFunc(void)+18) 03-27 21:28:53.800 9079 9079 F DEBUG : #22 pc 00063315 /system/lib/libc.so (__pthread_start(void*)+22) 03-27 21:28:53.800 9079 9079 F DEBUG : #23 pc 0001de79 /system/lib/libc.so (start_thread+24) 03-27 21:28:53.871 1832 1832 E CarPowerManagerNative: Received unknown bootReason = 0 03-27 21:28:53.871 1832 1832 E PowerTestService: ERROR: Could not read bootReason!! 目前来起来类型传的也没问题,大神能帮忙指导一下吗?

jeremyczhen commented 4 years ago

我把https://github.com/jeremyczhen/fdbus/blob/master/jni/test/MediaServer.java又跑了一遍,在client端反复subscribe/unsubscribe,都没有重现该现象。可能我的测试代码没有跑入特定case。能否发一段测试程序给我看一下?如果真是个问题一定可以解掉的。谢谢!