JNI调用过程是:Java —> JNI —> C/C++(SO库)
问题一、服务器linphone JNI初始化后,打开web页面出现段错误,边缘网关直接崩溃退出
日志:
14:56:37.802 siteServer [https-jsse-nio-8096-exec-4] INFO o.s.web.servlet.DispatcherServlet - FrameworkServlet 'dispatcherServlet': initialization completed in 12 ms [LIB] Fatal signal 11 (SIGSEGV) at 0x7fd2f8228000 (code=2), thread 1623 (java) [LIB] stack depth 3 [LIB] /usr/lib64/liblinphonejni.so(+0x9cb7) [0x7fd2b4eb5cb7] [LIB] /lib64/libpthread.so.0(+0xf630) [0x7fd2f7dfc630] [LIB] [0x7fd2e17ad256] [1]- 完成 cd /home/legrand_linux_install_69/7jar [root@localhost ~]# ps -uax | grep java root 4475 0.0 0.0 112824 980 pts/13 S+ 14:57 0:00 grep --color=auto java root 32762 1.0 16.6 6232416 1306308 ? Sl 9月28 190:36 /home/legrand_linux_install_69/6jdk/jdk1.8_x64/bin/java -jar -Dspring.profiles.active=inland -XX:+HeapDumpOnOutOfMemoryError -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms2048m -Xmx2048m -Xmn512m -Xss1m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC /home/legrand_linux_install_69/7jar/cms-site-server-app-0.0.1.jar --ftp.pwd=YjAwYzk4ZmM5Z!@# [2]+ 段错误 (吐核)java -jar /home/legrand_linux_install_69/7jar/cms-gateway-rest-server-app-0.0.1.jar [root@localhost ~]# |
通过Android NDK工具命令排查问题如下:
[root@localhost ~]# addr2line -f -e /usr/lib64/liblinphonejni.so +0x9cb7 ( +0x9cb7 指针位置)
[root@localhost ~]# /home/share/linphone_for_ss/submodules/linphonejni/src/backtrace.c:67
源码位置:
修复方式:注释掉backtarce,dbg_signal_handler函数是捕获信号的,估计是打开网页,产生了一些信号被他捕获了,认为是崩溃的。
问题二、服务器Linphone JNI初始化后,出现JVM检测到致命错误,边缘网关直接崩溃退出
日志:
# # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x0000000000000000, pid=10132, tid=0x00007f970ddc0700 # # JRE version: Java(TM) S |