Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

小米10/10Pro 省电模式必现闪退:__kmp_abort_process #4369

Closed
ijero opened this issue Nov 25, 2022 · 20 comments · Fixed by #4370
Closed

小米10/10Pro 省电模式必现闪退:__kmp_abort_process #4369

ijero opened this issue Nov 25, 2022 · 20 comments · Fixed by #4370
Labels

Comments

@ijero
Copy link

ijero commented Nov 25, 2022

error log | 日志或报错信息 | ログ

Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 31959 (thread-pool-1), pid 31478 (om.timehut.ncnn)
pid: 31478, tid: 31959, name: thread-pool-1  >>> com.timehut.ncnn <<<
      #01 pc 0000000000b19260  /data/app/~~DewB4Z9g4BUSPMAa4ro2Zw==/com.timehut.ncnn-g1R4w3hYqG12Txs5VaOSeQ==/base.apk!libtimehut-ai.so (offset 0x23ce000) (__kmp_abort_process+52) (BuildId: 91d74b3087e79f0d9d64fe036c708f7533cc5462)

context | 编译/运行环境 | バックグラウンド

ncnn版本:ncnn-20220729-android-vulkan
Android Studio Electric Eel | 2022.1.1 Beta 4
NDK :24.0.8215888
运行环境:小米10/小米10 Pro,省电模式

how to reproduce | 复现步骤 | 再現方法

  1. 省电模式每次必现闪退,测试发现只要调用System.loadLibrary加载ncnn编译好的so库就会闪退
  2. 代码如下

more | 其他 | その他

    init {
        System.loadLibrary("timehut-ai")
    }
@nihui nihui added the bug label Nov 25, 2022
@nihui nihui linked a pull request Nov 25, 2022 that will close this issue
@nihui
Copy link
Member

nihui commented Nov 25, 2022

麻烦测试下这个pr能否修复
#4370

@ijero
Copy link
Author

ijero commented Nov 25, 2022

麻烦测试下这个pr能否修复 #4370

ac0f633907c68a3988386356a9ed361

试了仍然出现问题,目前我正在排查是调用哪个API出现的

@nihui
Copy link
Member

nihui commented Nov 25, 2022

麻烦测试下这个pr能否修复 #4370

ac0f633907c68a3988386356a9ed361

试了仍然出现问题,目前我正在排查是调用哪个API出现的

setenv(“KMP_AFFINITY”, “disabled”, 1);

这样子能解决吗

@ijero
Copy link
Author

ijero commented Nov 25, 2022

麻烦测试下这个pr能否修复 #4370

ac0f633907c68a3988386356a9ed361
试了仍然出现问题,目前我正在排查是调用哪个API出现的

setenv(“KMP_AFFINITY”, “disabled”, 1);

这样子能解决吗

还是不行,我在ncnn::Net.load_model之前加的,位置对不对?

@nihui
Copy link
Member

nihui commented Nov 25, 2022

麻烦测试下这个pr能否修复 #4370

ac0f633907c68a3988386356a9ed361
试了仍然出现问题,目前我正在排查是调用哪个API出现的

setenv(“KMP_AFFINITY”, “disabled”, 1);

这样子能解决吗

还是不行,我在ncnn::Net.load_model之前加的,位置对不对?

这里添加试试?

JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
{
    // here
    setenv(“KMP_AFFINITY”, “disabled”, 1);
    return JNI_VERSION_1_4;
}

@nihui
Copy link
Member

nihui commented Nov 25, 2022

#4370 更新了新的方法

@ijero
Copy link
Author

ijero commented Nov 25, 2022

麻烦测试下这个pr能否修复 #4370

ac0f633907c68a3988386356a9ed361
试了仍然出现问题,目前我正在排查是调用哪个API出现的

setenv(“KMP_AFFINITY”, “disabled”, 1);

这样子能解决吗

还是不行,我在ncnn::Net.load_model之前加的,位置对不对?

这里添加试试?

JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
{
    // here
    setenv(“KMP_AFFINITY”, “disabled”, 1);
    return JNI_VERSION_1_4;
}

你好,添加之后发现省电模式下直接走不到JNI_OnLoad就闪退了,关闭省电模式能走进去

@ijero

This comment was marked as duplicate.

@nihui
Copy link
Member

nihui commented Nov 25, 2022

@nihui 这是我的Java到JNI的入口文件,除了JNI_OnLoad,Java_com_timehut_ai_core_Ncnn_loadModel方法是最初进入的方法,loadModel间接调用了ncnn::Net的load_model方法,请帮忙看下有没有问题。

这个问题和你的调用代码无关,是底层问题,稍后我用 #4370 打包个新版本你来试试

@ijero
Copy link
Author

ijero commented Nov 25, 2022

好的,谢谢了

@nihui
Copy link
Member

nihui commented Nov 25, 2022

好的,谢谢了

https://github.com/nihui/ncnn/releases/tag/20221125

@ijero
Copy link
Author

ijero commented Nov 25, 2022

好的,谢谢了

https://github.com/nihui/ncnn/releases/tag/20221125

现在报错不一样了

Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 22501 (thread-pool-1), pid 21984 (om.timehut.ncnn)
pid: 21984, tid: 22501, name: thread-pool-1  >>> com.timehut.ncnn <<<
      #01 pc 0000000000b4fb50  /data/app/~~FS-fxbLnKh4bQ5LCYZt_fQ==/com.timehut.ncnn-aVcIvzfrWAAuv4FJMPyV7Q==/base.apk!libtimehut-ai.so (offset 0xb58000) (__kmp_env_get+20) (BuildId: 11933aa8ea50cbffc55139f2bc62d504bc11fe20)
channel '83593c3 com.timehut.ncnn/com.timehut.ncnn.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
onTopAppChanged newApp=com.miui.home,oldApp=com.timehut.ncnn,mPersistentApp=null,innerApp=false

@nihui
Copy link
Member

nihui commented Nov 25, 2022

好的,谢谢了

https://github.com/nihui/ncnn/releases/tag/20221125

现在报错不一样了

Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 22501 (thread-pool-1), pid 21984 (om.timehut.ncnn)
pid: 21984, tid: 22501, name: thread-pool-1  >>> com.timehut.ncnn <<<
      #01 pc 0000000000b4fb50  /data/app/~~FS-fxbLnKh4bQ5LCYZt_fQ==/com.timehut.ncnn-aVcIvzfrWAAuv4FJMPyV7Q==/base.apk!libtimehut-ai.so (offset 0xb58000) (__kmp_env_get+20) (BuildId: 11933aa8ea50cbffc55139f2bc62d504bc11fe20)
channel '83593c3 com.timehut.ncnn/com.timehut.ncnn.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
onTopAppChanged newApp=com.miui.home,oldApp=com.timehut.ncnn,mPersistentApp=null,innerApp=false

这个版本的包,不需要加前面issue里我提到的 setenv(“KMP_AFFINITY”, “disabled”, 1); 之类的代码了

@ijero
Copy link
Author

ijero commented Nov 25, 2022

好的,我再试试

@ijero
Copy link
Author

ijero commented Nov 25, 2022

还是一样哦,JNI_OnLoad整个方法我删掉了,全局搜setenv(,已经没有了
image

@nihui
Copy link
Member

nihui commented Nov 25, 2022

还是一样哦,JNI_OnLoad整个方法我删掉了,全局搜setenv(,已经没有了 image

kmp_set_defaults 代码也没有是吧

@ijero
Copy link
Author

ijero commented Nov 25, 2022

还是一样哦,JNI_OnLoad整个方法我删掉了,全局搜setenv(,已经没有了 image

kmp_set_defaults 代码也没有是吧

没有

image

@nihui
Copy link
Member

nihui commented Nov 25, 2022

ok,确认 cmakelists.txt 是使用 find_package(ncnn) 然后 target_link_libraries(xxx ncnn) 引用的 ncnn 库

以及截图中的堆栈只看到了一层,有没有更多的堆栈信息
加一下github readme首页第二个qq群交流

@ijero
Copy link
Author

ijero commented Nov 25, 2022

ok,确认 cmakelists.txt 是使用 find_package(ncnn) 然后 target_link_libraries(xxx ncnn) 引用的 ncnn 库

以及截图中的堆栈只看到了一层,有没有更多的堆栈信息 加一下github readme首页第二个qq群交流

加了 同意一下 我今天加过没有通过才来这里的[/捂脸]

@onion124567
Copy link

这个问题解决了吗,我也遇到了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants