HarmonyOS 崩溃堆栈 libmindspore\_lite\_ndk.so?

银行的监控系统采集到多个native相关的崩溃,这些崩溃的堆栈都是在系统的so里面。麻烦确认下这些崩溃是系统的原因还是因为App使用的原因导致的?若是App使用的原因,麻烦给下建议的修复方案。

崩溃堆栈:

"Thread name:OS_TaskWorker
#00 pc 00000000000107c0 /system/lib64/ndk/libmindspore_lite_ndk.so(mindspore::ModelC::GetInputs(unsigned long*)+44)(31baaaccb6f36fc655e54a34bb3308d5)
#01 pc 000000000001288c /system/lib64/ndk/libmindspore_lite_ndk.so(OH_AI_ModelGetInputs+44)(31baaaccb6f36fc655e54a34bb3308d5)
#02 pc 000000000002af04 /data/storage/el1/bundle/libs/arm64/libpa_edge_ai_face.so(MindSporeInference::getInputTensorFormat()+64)(91455ff0e6e1305ee5cbf7a73d0129ddc302065a)
#03 pc 000000000001efcc /data/storage/el1/bundle/libs/arm64/libpa_edge_ai_face.so(FaceDetector::run(napi_env__*, NativePixelMap_*, std::__n1::vector<FaceInfo, std::__n1::allocator<FaceInfo>>&, float, float)+204)(91455ff0e6e1305ee5cbf7a73d0129ddc302065a)
#04 pc 000000000002d4ec /data/storage/el1/bundle/libs/arm64/libpa_edge_ai_face.so(PoseDetector::detectPose(napi_env__*, NativePixelMap_*, NativePixelMap_*, PoseInfo&, bool)+308)(91455ff0e6e1305ee5cbf7a73d0129ddc302065a)
#05 pc 000000000002efb4 /data/storage/el1/bundle/libs/arm64/libpa_edge_ai_face.so(91455ff0e6e1305ee5cbf7a73d0129ddc302065a)
#06 pc 00000000000341f4 /system/lib64/platformsdk/libace_napi.z.so(panda::JSValueRef ArkNativeFunctionCallBack<true>(panda::JsiRuntimeCallInfo*)+220)(9c97d173ea060df8c1c6e0fe75082936)
#07 pc 00000000002dd8f8 /system/lib64/module/arkcompiler/stub.an(RTStub_PushCallRangeAndDispatchNative+132)
#08 at detectPose (aivideo/src/main/ets/components/pose_detector/PoseDetector.ets:76:12)
#09 at detectPose (aivideo/src/main/ets/components/pose_detector/MultiThreadDetect.ets:12:17)
#10 pc 00000000002fdda8 /system/lib64/platformsdk/libark_jsruntime.so(panda::ecmascript::InterpreterAssembly::Execute(panda::ecmascript::EcmaRuntimeCallInfo*)+184)(b47229c50465caa19d21d9ec0db52e5c)
#11 pc 00000000004a4acc /system/lib64/platformsdk/libark_jsruntime.so(panda::FunctionRef::CallForNapi(panda::ecmascript::EcmaVM const*, panda::JSValueRef*, panda::JSValueRef* const*, int)+1304)(b47229c50465caa19d21d9ec0db52e5c)
#12 pc 000000000004e950 /system/lib64/platformsdk/libace_napi.z.so(napi_call_function+352)(9c97d173ea060df8c1c6e0fe75082936)
#13 pc 000000000002c024 /system/lib64/module/libtaskpool.z.so(Commonlibrary::Concurrent::TaskPoolModule::Worker::PerformTask(uv_async_s const*) (.cfi)+1432)(a815b6966dde0cdffc27f367f075b55a)
#14 pc 000000000001803c /system/lib64/platformsdk/libuv.so(uv__async_io+352)(4e419128fa81eb2b25e68779713aa458)
#15 pc 0000000000017720 /system/lib64/platformsdk/libuv.so(uv__io_poll+1268)(4e419128fa81eb2b25e68779713aa458)
#16 pc 0000000000018540 /system/lib64/platformsdk/libuv.so(uv_run+376)(4e419128fa81eb2b25e68779713aa458)
#17 pc 000000000002b718 /system/lib64/module/libtaskpool.z.so(Commonlibrary::Concurrent::TaskPoolModule::Worker::ExecuteInThread(void const*) (.cfi)+1012)(a815b6966dde0cdffc27f367f075b55a)
#18 pc 0000000000027f44 /system/lib64/module/libtaskpool.z.so(Commonlibrary::Concurrent::TaskPoolModule::TaskRunner::TaskInnerRunner::Run()+68)(a815b6966dde0cdffc27f367f075b55a)
#19 pc 00000000001b8e54 /system/lib/ld-musl-aarch64.so.1(start+236)(5eee310927fa497814a95d97820a89bb)"
阅读 577
1 个回答

应用Crash是在MindSpore在创建及推理出现在不同线程的场景下发生。

MindSpore Lite接口是不支持多线程并发的,需要开发者自行确保多线程安全。

建议排查:

1、Model对象在创建后,确保使用时都保持有效。

2、从Model获取的In Tensor handle,并用于获取Tensor Format时,确保Model对象是有效的,未被销毁或破坏。

3、在推理线程使用Model对象时,确保其它线程不会并发使用Model。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进