为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:CentOS Linux release 7.6.1810 (Core)
【CPU】:Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
【问题描述】:
1. dpi客户连接服务器,设置连接超时和读写超时,客户端做一个while循环,每秒执行sleep(1)命令
2. 使用iptables -A OUTPUT -p tcp --dport 49422 -j DROP;丢弃客户端的包模拟网络异常,49422为客户端连接服务器的端口
3. 大概十几秒后:iptables -F;恢复网络
4. 此时可能出现sleep(1)的sql调用完全卡住,再也无法恢复。连接超时和读写超时都没作用了。
出问题后堆栈信息:
Thread 2 (Thread 0x7f8636510640 (LWP 8650) "dbi_test"):
#0 0x00007f8638546b5a in __futex_abstimed_wait_common64 () from /opt/sysroot64/lib/libpthread.so.0
#1 0x00007f8638540e1c in pthread_cond_timedwait@@GLIBC_2.3.2 () from /opt/libpthread.so.0
#2 0x00007f8636cf77c2 in os_event2_wait_timeout () from ../src/libdmdpi.so
#3 0x00007f8636beb0ff in dpi_tcp_detect_thread () from ../src/libdmdpi.so
#4 0x00007f863853ad5e in start_thread () from /opt/sysroot64/lib/libpthread.so.0
#5 0x00007f86380d92ff in clone () from /opt/sysroot64/lib/libc.so.6
Thread 1 (Thread 0x7f8636698740 (LWP 8629) "dbi_test"):
#0 0x00007f8638543ddc in read () from /opt/lib/libpthread.so.0
#1 0x00007f8636c6ffb9 in viosocket_recv () from ../src/libdmdpi.so
#2 0x00007f8636c6dc09 in data_recv_inet_once () from ../src/libdmdpi.so
#3 0x00007f8636c6e7d7 in comm_inet_msg_recv_low () from ../src/libdmdpi.so
#4 0x00007f8636c6eab8 in comm_inet_msg_recv () from ../src/libdmdpi.so
#5 0x00007f8636c6a6aa in comm_msg_recv_with_memobj () from ../src/libdmdpi.so
#6 0x00007f8636c6a78c in comm_msg_recv () from ../src/libdmdpi.so
#7 0x00007f8636beafc2 in dpi_recv_msg () from ../src/libdmdpi.so
#8 0x00007f8636beed76 in dpi_msg_inner () from ../src/libdmdpi.so
#9 0x00007f8636bef258 in dpi_msg () from ../srclibdmdpi.so
#10 0x00007f8636c512ca in dpi_exec_direct_inner () from ../src/libdmdpi.so
#11 0x00007f8636c51880 in dpi_exec_direct () from ../src/libdmdpi.so
#12 0x00007f8638a504f5 in ConnecttoSrv(char const, char const*, char const*, char const*, unsigned short, unsigned short*) () from ../src/libdbi.so
#13 0x00007f8638a4ce8e in ConnecttoSrv(char const*, char const*, char const*, char const*, unsigned short) () from ../src/libdbi.so
您试下跟新驱动呢,$DM_HOME/drivers里有版本自带的驱动文件。