现象
高并发呼叫时FreeSWITCH通过lua发出http请求,发生段错误后进程退出。
debug时最深可追踪到:
inet_tryconnect () from /usr/lib64/lua/5.1/socket/core.so
环境描述
FreeSWITCH版本号: 1.8.1
luasocket版本号: luasocket-2.0.2
原因
2.0.x版本问题。
解决办法
升级安装luasocket-3.0-rc1版本进行并发测试(600并发),没有出现进程退出的问题。相同环境回退到2.0.x版本再测试(200并发),复现了该问题。
安装luasocket的方法
源码安装
wget https://github.com/diegonehab/luasocket/archive/v3.0-rc1.tar.gz
tar zxvf luasocket-xx.tar.gz
cd luasocket-xx
make
make install
yum安装
yum install luarocks -y
luarocks install luasocket