我在debian上将Apache Thrift用于本地IPC。尝试打开NETLINK套接字时,Linux向线程发送SIGABORT。从回溯中,我看到信号是由__netlink_assert_response()
检查代码后,我发现__netlink_assert_response()
调用了__libc_fatal(messsage)
,这正是我在回溯中看到的。
此问题不是100%可重现的。
已经检查了netlink代码,我假设尝试使用未连接的套接字。但不能肯定地说。有什么想法/评论如何缩小可能原因的范围?
Program terminated with signal SIGABRT, Aborted.
#0 0xb773dcf9 in __kernel_vsyscall ()
[Current thread is 1 (Thread 0x9cefcb40 (LWP 2974))]
(gdb) bt
#0 0xb773dcf9 in __kernel_vsyscall ()
#1 0xb24d1dd0 in raise () from /lib/i386-linux-gnu/libc.so.6
#2 0xb24d3297 in abort () from /lib/i386-linux-gnu/libc.so.6
#3 0xb250d38f in ?? () from /lib/i386-linux-gnu/libc.so.6
#4 0xb250d3cc in __libc_fatal () from /lib/i386-linux-gnu/libc.so.6
#5 0xb25aa590 in __netlink_assert_response () from /lib/i386-linux-gnu/libc.so.6
#6 0xb25a9c08 in ?? () from /lib/i386-linux-gnu/libc.so.6
#7 0xb25768d4 in getaddrinfo () from /lib/i386-linux-gnu/libc.so.6
#8 0xb66ae018 in apache::thrift::transport::TSocket::local_open() () from /usr/lib/i386-linux-gnu/libthrift-0.11.0.so
#9 0xb66ade27 in apache::thrift::transport::TSocket::open() () from /usr/lib/i386-linux-gnu/libthrift-0.11.0.so
#10 0xb66c611c in apache::thrift::transport::TBufferedTransport::open() () from /usr/lib/i386-linux-gnu/libthrift-0.11.0.so
...