Advertisement

分析UDP连接偶尔失效的原因

阅读量:

问题表现分析

在程序“重启”过程中,偶尔会出现异常终止的情况,具体表现为udp connect操作失败,但一旦成功启动,整个程序的运行状态则完全正常。

当发生故障时,系统会生成coredump文件,其特征为断言失败:

(gdb) bt

#0 0x00007ff031e28f45 in raise () from /lib64/libc.so.6

#1 0x00007ff031e2a340 in abort () from /lib64/libc.so.6

#2 0x00007ff031e22486 in __assert_fail () from /lib64/libc.so.6

#3 0x0000000000418e0b in dmp::detec::DnsResolver::NewSock (this=0x43cb5aa0, dns_addr_idx=0) at src/detec_dns_resolver.cpp:129

相关代码(detec_dns_resolver.cpp:129)如下:

assert(connect(fd, (sockaddr*)_dnsinfo[dns_addr_idx]._dns_addr, sizeof(sockaddr_in)) == 0);

备注: 对于需要多次使用的udpsocket,在

全部评论 (0)

还没有任何评论哟~