基于libacl库开发的服务程序在CentOS7系统上报错问题的处理
报错
xxx : src/fiber_server.cpp(176), thread_fiber_accept: accept error: Operation not supported(95, 11), maxfd: 57, lastfd: 57, listenfd: 9, stoping ...
xxx : src/fiber_server.cpp(176), thread_fiber_accept: accept error: Socket operation on non-socket(88, 11), maxfd: 22, lastfd: 22, listenfd: 8, stoping ...
问题原因
经过测试,libacl库是支持ipv6的。此错误是配置文件中的地址格式问题造成的。
地址格式 | ipv4 | ipv6 |
---|---|---|
:8887 | Y | E |
[::]:8887 | N | Y |
|8887 | Y | Y |
192.168.56.101:8887 | Y | E |
# master_service = :8887 ERROR
# master_service = 0.0.0.0:8887 OK
# master_service = [::]:8887 OK
# master_service = fe80::eb09:d971:a07a:4bdf|8887 ERROR
# master_service = [fe80::eb09:d971:a07a:4bdf]:8887 ERROR
master_service = 192.168.56.101:8887 OK
还有一些问题需要进一步验证
解决
$ sudo vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
$ sudo sysctl -p
vm.swappiness = 0
kernel.sysrq = 1
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
报错2
xxx(warn): master/master_spawn.cpp(302), service_status_exit: process /opt/hll_edge_ai_server//libexec/hll_ai_detection_engine_prc pid 21558 exit status 127
xxx(warn): master/master_spawn.cpp(335), service_status_throttle: bad command startup, path=/opt/hll_edge_ai_server//libexec/hll_ai_detection_engine_prc -- throttling, signal=0
xxx(warn): service /opt/hll_edge_ai_server//conf/service/hll_ai_detection_engine_prc.cf been delayed for throttled
xxx(error): notify_thread(88): connect /opt/soft/acl-master/var/public/monitor.sock error, info(path=%2Fopt%2Fhll_edge_ai_server%2F%2Flibexec%2Fhll_ai_detection_engine_prc&conf=%2Fopt%2Fhll_edge_ai_server%2F%2Fconf%2Fservice%2Fhll_ai_detection_engine_prc.cf&ver=none&pid=21558&rcpt=admin%40root.domain&info=signal%3D0%2C%20exit%20status%20127
)
xxx(error): notify_thread(88): connect /opt/soft/acl-master/var/public/monitor.sock error, info(path=%2Fopt%2Fhll_edge_ai_server%2F%2Flibexec%2Fhll_ai_detection_engine_prc&conf=%2Fopt%2Fhll_edge_ai_server%2F%2Fconf%2Fservice%2Fhll_ai_detection_engine_prc.cf&ver=none&pid=21558&rcpt=admin%40root.domain&info=exit%20status%20127
)
原因
检查依赖库是否可以找到ldd
解决
sudo vi /etc/ld.so.conf
# 加入库路径
sudo ldconfig
报错3
xxx hll_ai_detection_engine_prc (pid=8525)(info): master_log_open(29): service: hll_ai_detection_engine_prc, log opened now.
xxx hll_ai_detection_engine_prc (pid=8525)(info): hll_ai_detection_engine_prc(509): daemon started, log=udp:127.0.0.1:1514
xxx hll_ai_detection_engine_prc (pid=8525)(warn): event_limit: fdsize(1024) too small, extend it
xxx hll_ai_detection_engine_prc (pid=8525)(info): event_limit: max fdsize: 10240
xxx hll_ai_detection_engine_prc (pid=8525)(info): service: hll_ai_detection_engine_prc detach acl_master's log now
xxx acl_master (pid=8511)(warn): master/master_spawn.cpp(319), service_status_killed: process /opt/hll_edge_ai_server//libexec/hll_ai_detection_engine_prc pid 8525 killed by signal 6
xxx acl_master (pid=8511)(warn): master/master_spawn.cpp(335), service_status_throttle: bad command startup, path=/opt/hll_edge_ai_server//libexec/hll_ai_detection_engine_prc -- throttling, signal=6
xxx acl_master (pid=8511)(warn): service /opt/hll_edge_ai_server//conf/service/engine.cf been delayed for throttled
xxx acl_master (pid=8511)(error): notify_thread(88): connect /opt/soft/acl-master/var/public/monitor.sock error, info(path=%2Fopt%2Fhll_edge_ai_server%2F%2Flibexec%2Fhll_ai_detection_engine_prc&conf=%2Fopt%2Fhll_edge_ai_server%2F%2Fconf%2Fservice%2Fengine.cf&ver=none&pid=8525&rcpt=admin%40root.domain&info=signal%3D6%2C%20exit%20status%200
)
xxx acl_master (pid=8511)(error): notify_thread(88): connect /opt/soft/acl-master/var/public/monitor.sock error, info(path=%2Fopt%2Fhll_edge_ai_server%2F%2Flibexec%2Fhll_ai_detection_engine_prc&conf=%2Fopt%2Fhll_edge_ai_server%2F%2Fconf%2Fservice%2Fengine.cf&ver=none&pid=8525&rcpt=admin%40root.domain&info=killed%20by%206
)
原因
进程运行失败,alone模式下也无法成功启动。
解决
解决进程运行失败问题