1、问题现象
查看应用报错日志:An I/O error occured while sending to the backend.detail:Read timed out

2、分析过程
查看dn日志,搜索关键字"Read time out" 。
cd $GAUSSLOG/gs_log
zgrep -i 'timedout' gaussdb-2025-10-17_*****.log.gz
3、处理过程
查看JDBC url配置,查看url中是否配置socketTimeout 或者connectTimeout参数
1、当设置了connectTimeout时,JDBC创建tcp套接字进行建连时,等待的时间超过了connectTimeout,会抛出异常,这种情况,一般是网络问题或者内核通讯问题导致,需排查故障时的网络状况以及线程池使用情况。
实时查询线程池使用情况:
select node_name,session_info from dbe_perf.global_threadpool_status order by 1;
2、当设置了socketTimeout时,JDBC读取报文,调用SocketInputStream.read()函数,该函数会调用函数socketRead阻塞等待内核返还报文,当阻塞时间超过socketTimeout时,会抛出异常。
a. socketTimeout值设置是否合理;
b. 排查慢SQL;
c. 排查故障时网络状况;
d. 查看日志排查有无锁等待超时等,如下图为锁等待超时;
cd $GAUSSLOG/gs_log/
zgrep -i 'timedout' gaussdb-2025-10-17_*****.log.gz
