使用fluid inference api动态链接库会导致程序结束时出core
Created by: wuyan08
通过git clone出最新的源码,编译出fluid c++ api动态链接库,然后写了一个非常简单的demo程序, 链接了编译出来的so,程序结束时会出重复释放的core。
-
paddle编译选项: cmake -DCMAKE_BUILD_TYPE=Release -DWITH_AVX=OFF -DWITH_MKL=OFF -DWITH_GPU=OFF -DWITH_C_API=OFF -DWITH_FLUID_ONLY=ON -DWITH_CONTRIB=ON -DWITH_PYTHON=OFF -DWITH_SWIG_PY=OFF -DWITH_DISTRIBUTE=OFF -DWITH_TESTING=ON ..
-
docker环境:docker.paddlepaddlehub.com/paddle_manylinux_devel:cuda8.0_cudnn5
-
gcc版本:4.8.2
-
demo.cpp源码: //////////////////////////////////// #include <stdio.h> int main() { printf("demo.\n"); return 0; } ////////////////////////////////////
-
demo编译方式: g++ -o demo demo.cpp -L./ -lpaddle_fluid -lpaddle_inference_api_shared -lpthread -ldl
-
执行demo: [root@3d086b748e3b test]# ./demo demo.
* glibc detected
======= Backtrace: ========= /lib64/libc.so.6(+0x75dee)[0x7f42f780fdee] /lib64/libc.so.6(+0x78c3d)[0x7f42f7812c3d] /lib64/libc.so.6(__cxa_finalize+0x9d)[0x7f42f77cfd2d] ./libpaddle_inference_api_shared.so(+0xd9863)[0x7f42f87c8863] ======= Memory map: ======== 00400000-00401000 r-xp 00000000 08:06 131598743 /home/paddlepaddle/test/demo 00600000-00601000 rw-p 00000000 08:06 131598743 /home/paddlepaddle/test/demo 01285000-013f0000 rw-p 00000000 00:00 0 [heap] 7f42ec000000-7f42ec021000 rw-p 00000000 00:00 0 7f42ec021000-7f42f0000000 ---p 00000000 00:00 0 7f42f098f000-7f42f0990000 ---p 00000000 00:00 0 7f42f0990000-7f42f1390000 rw-p 00000000 00:00 0 7f42f1390000-7f42f1391000 ---p 00000000 00:00 0 7f42f1391000-7f42f1d91000 rw-p 00000000 00:00 0 7f42f1d91000-7f42f1d92000 ---p 00000000 00:00 0 7f42f1d92000-7f42f2792000 rw-p 00000000 00:00 0 7f42f779a000-7f42f7924000 r-xp 00000000 08:06 113509126 /lib64/libc-2.12.so 7f42f7924000-7f42f7b24000 ---p 0018a000 08:06 113509126 /lib64/libc-2.12.so 7f42f7b24000-7f42f7b28000 r--p 0018a000 08:06 113509126 /lib64/libc-2.12.so 7f42f7b28000-7f42f7b2a000 rw-p 0018e000 08:06 113509126 /lib64/libc-2.12.so 7f42f7b2a000-7f42f7b2e000 rw-p 00000000 00:00 0 7f42f7b2e000-7f42f7b44000 r-xp 00000000 08:06 113509147 /lib64/libgcc_s-4.4.7-20120601.so.1 7f42f7b44000-7f42f7d43000 ---p 00016000 08:06 113509147 /lib64/libgcc_s-4.4.7-20120601.so.1 7f42f7d43000-7f42f7d44000 rw-p 00015000 08:06 113509147 /lib64/libgcc_s-4.4.7-20120601.so.1 7f42f7d44000-7f42f7dc7000 r-xp 00000000 08:06 113509185 /lib64/libm-2.12.so 7f42f7dc7000-7f42f7fc6000 ---p 00083000 08:06 113509185 /lib64/libm-2.12.so 7f42f7fc6000-7f42f7fc7000 r--p 00082000 08:06 113509185 /lib64/libm-2.12.so 7f42f7fc7000-7f42f7fc8000 rw-p 00083000 08:06 113509185 /lib64/libm-2.12.so 7f42f7fc8000-7f42f80b0000 r-xp 00000000 08:06 113510201 /usr/lib64/libstdc++.so.6.0.13 7f42f80b0000-7f42f82b0000 ---p 000e8000 08:06 113510201 /usr/lib64/libstdc++.so.6.0.13 7f42f82b0000-7f42f82b7000 r--p 000e8000 08:06 113510201 /usr/lib64/libstdc++.so.6.0.13 7f42f82b7000-7f42f82b9000 rw-p 000ef000 08:06 113510201 /usr/lib64/libstdc++.so.6.0.13 7f42f82b9000-7f42f82ce000 rw-p 00000000 00:00 0 7f42f82ce000-7f42f82d0000 r-xp 00000000 08:06 113509139 /lib64/libdl-2.12.so 7f42f82d0000-7f42f84d0000 ---p 00002000 08:06 113509139 /lib64/libdl-2.12.so 7f42f84d0000-7f42f84d1000 r--p 00002000 08:06 113509139 /lib64/libdl-2.12.so 7f42f84d1000-7f42f84d2000 rw-p 00003000 08:06 113509139 /lib64/libdl-2.12.so 7f42f84d2000-7f42f84e9000 r-xp 00000000 08:06 113509227 /lib64/libpthread-2.12.so 7f42f84e9000-7f42f86e9000 ---p 00017000 08:06 113509227 /lib64/libpthread-2.12.so 7f42f86e9000-7f42f86ea000 r--p 00017000 08:06 113509227 /lib64/libpthread-2.12.so 7f42f86ea000-7f42f86eb000 rw-p 00018000 08:06 113509227 /lib64/libpthread-2.12.so 7f42f86eb000-7f42f86ef000 rw-p 00000000 00:00 0 7f42f86ef000-7f42f89cf000 r-xp 00000000 08:06 131598747 /home/paddlepaddle/test/libpaddle_inference_api_shared.so 7f42f89cf000-7f42f8bcf000 ---p 002e0000 08:06 131598747 /home/paddlepaddle/test/libpaddle_inference_api_shared.so 7f42f8bcf000-7f42f8bdf000 rw-p 002e0000 08:06 131598747 /home/paddlepaddle/test/libpaddle_inference_api_shared.so 7f42f8bdf000-7f42f8bf1000 rw-p 00000000 00:00 0 7f42f8bf1000-7f42fb2be000 r-xp 00000000 08:06 131598746 /home/paddlepaddle/test/libpaddle_fluid.so 7f42fb2be000-7f42fb4be000 ---p 026cd000 08:06 131598746 /home/paddlepaddle/test/libpaddle_fluid.so 7f42fb4be000-7f42fb521000 rw-p 026cd000 08:06 131598746 /home/paddlepaddle/test/libpaddle_fluid.so 7f42fb521000-7f42fb540000 rw-p 00000000 00:00 0 7f42fb540000-7f42fb560000 r-xp 00000000 08:06 113509107 /lib64/ld-2.12.so 7f42fb74e000-7f42fb757000 rw-p 00000000 00:00 0 7f42fb75b000-7f42fb75c000 rw-p 00000000 00:00 0 7f42fb75d000-7f42fb760000 rw-p 00000000 00:00 0 7f42fb760000-7f42fb761000 r--p 00020000 08:06 113509107 /lib64/ld-2.12.so 7f42fb761000-7f42fb762000 rw-p 00021000 08:06 113509107 /lib64/ld-2.12.so 7f42fb762000-7f42fb763000 rw-p 00000000 00:00 0 7ffd94c07000-7ffd94c28000 rw-p 00000000 00:00 0 [stack] 7ffd94d50000-7ffd94d52000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] Aborted