为什么在 zmq_poll() 期间出现 SIGABRT 权限被拒绝错误?

Why a SIGABRT permission denied error appeared during a zmq_poll()?

我正在使用 zmq PUSHPULL 套接字。最近开始观察 SIGABRT 崩溃,在 zmq_poll() 操作中。

error/exit 日志是“权限被拒绝(src/tcp_connecter.cpp:361)

(gdb) bt
#0 0x00007ffff76d053f in raise () from /lib64/libc.so.6
#1 0x00007ffff76ba895 in abort () from /lib64/libc.so.6
#2 0x00007ffff7f59ace in zmq::zmq_abort(char const*) () from /lib64/libzmq.so.5
#3 0x00007ffff7f9ef36 in zmq::tcp_connecter_t::connect() () from /lib64/libzmq.so.5
#4 0x00007ffff7f9f060 in zmq::tcp_connecter_t::out_event() () from /lib64/libzmq.so.5
#5 0x00007ffff7f6bc2c in zmq::epoll_t::loop() () from /lib64/libzmq.so.5
#6 0x00007ffff7f9ffba in thread_routine () from /lib64/libzmq.so.5
#7 0x00007ffff75d058e in start_thread () from /lib64/libpthread.so.0
#8 0x00007ffff77956a3 in clone () from /lib64/libc.so.6

有人能帮我吗??

进程是 Kubernates 中容器 运行 的一部分。这个问题突然开始发生。而且无法恢复。

谢谢,

同时,我解决了这个问题。

主机 A 中的 zmq 接口试图连接到主机 B。并且在主机 A 中观察到上述错误。

而且这个问题在重启HostB后开始出现一次。我注意到,HostB 中添加了一个 ip6table 规则作为其重启的一部分。此规则在 INPUT 中执行“拒绝并禁止管理员”,并在 HostB 中执行转发链。 (我必须在我的笔记中搜索确切的规则。)

作为其中的一部分,HostA 中的 zmq 客户端以上述崩溃告终。我认为崩溃 (SIGABRT) 不应该是在对等端达到此类规则的解决方案。由于 SIGABRT 异常无法在代码中处理。