HarmonyOS 鸿蒙Next libcurl_shared_http3 系统native crash

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next libcurl_shared_http3 系统native crash

Signal:SIGSEGV(SEGV_MAPERR)@0x006b6b5bec1cb650
Thread name:OS_NET_HttpWork
#00 pc 00000000001367e4 /system/lib64/platformsdk/libcurl_shared_http3.z.so(mime_subparts_unbind+36)(7337e4851e1632fd5f0d0fbce4140c17)
#01 pc 00000000001365e0 /system/lib64/platformsdk/libcurl_shared_http3.z.so(Curl_mime_cleanpart+32)(7337e4851e1632fd5f0d0fbce4140c17)
#02 pc 000000000015ad20 /system/lib64/platformsdk/libcurl_shared_http3.z.so(Curl_freeset+216)(7337e4851e1632fd5f0d0fbce4140c17)
#03 pc 000000000015b218 /system/lib64/platformsdk/libcurl_shared_http3.z.so(Curl_close+1180)(7337e4851e1632fd5f0d0fbce4140c17)
#04 pc 0000000000118c30 /system/lib64/platformsdk/libcurl_shared_http3.z.so(curl_easy_cleanup+116)(7337e4851e1632fd5f0d0fbce4140c17)
#05 pc 0000000000065ff4 /system/lib64/module/net/libhttp.z.so(OHOS::NetStack::HttpOverCurl::EpollMultiDriver::CheckMultiInfo()+536)(f3433f7dd45bc8827084944c78d30601)
#06 pc 0000000000065cf8 /system/lib64/module/net/libhttp.z.so(OHOS::NetStack::HttpOverCurl::EpollMultiDriver::EpollSocketCallback(int)+72)(f3433f7dd45bc8827084944c78d30601)
#07 pc 00000000000658d8 /system/lib64/module/net/libhttp.z.so(OHOS::NetStack::HttpOverCurl::EpollMultiDriver::Step(int)+112)(f3433f7dd45bc8827084944c78d30601)
#08 pc 0000000000066c64 /system/lib64/module/net/libhttp.z.so(f3433f7dd45bc8827084944c78d30601)<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

设备系统:

BRA-AL00 5.0.0.66(SP6C00E66R4P9log)

打包成app 送审遇到 奔溃,堆栈如上所示,求助下

4 回复
目前上述问题已经解决了,请耐心等待后续版本。
内存访问错误,排查一下是否有内存越界或者对未初始化或已释放的内存的访问等

SIGSEGV(SEGV_MAPERR) 从signal 信号看是非法内存地址。但堆栈却发生在鸿蒙系统framework层中内嵌的 curl 库中。

针对您提到的HarmonyOS鸿蒙系统中libcurl_shared_http3组件出现的系统native crash问题,这通常涉及到底层库或系统API的异常调用。以下是几个可能的排查方向:

  1. 依赖库版本:确认libcurl及其依赖的HTTP/3库(如quiche或ngtcp2)版本是否与HarmonyOS当前版本兼容。不匹配的版本可能导致不兼容问题。

  2. 系统API调用:检查引发crash的API调用,确认是否使用了已废弃或未正确实现的系统接口。HarmonyOS的API可能在不同版本中有所变化。

  3. 内存管理:分析崩溃日志,查看是否存在内存泄漏、野指针访问或堆栈溢出等内存管理问题。这些问题常导致native crash。

  4. 多线程并发:如果libcurl在多线程环境中使用,确保线程安全。不当的线程同步可能导致资源竞争和崩溃。

  5. 日志与调试:增加日志记录,尝试捕捉更多崩溃前的系统状态。使用gdb或lldb等调试工具进行更深入的分析。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。希望这些方向能帮助您定位并解决问题。

回到顶部