StarRocks的一台be节点无法执行查询导致查询异常

【详述】问题详细描述
今天早上starrocks的查询服务突然异常,切部分写入任务也出现报错

发现一台be监控上显示dead

实际情况并没有dead

期间fe会有如下大量的异常日志

2023-09-11 10:10:00,302 WARN (starrocks-mysql-nio-pool-305896|1189777) [Coordinator.prepareResultSink():619] catch a execute exception

java.util.concurrent.ExecutionException: A error occurred: errorCode=62 errorMessage:method request time out, please check ‘onceTalkTimeout’ property. current value is:60000(MILLISECONDS) correlationId:2721763486 timeout with bound channel =>[id: 0xb213deb4, L:/10.2.72.238:42476 - R:/10.2.72.115:8060]

    at com.baidu.jprotobuf.pbrpc.client.ProtobufRpcProxy$2.get(ProtobufRpcProxy.java:578) ~[jprotobuf-rpc-core-4.2.1.jar:?]

    at com.starrocks.qe.Coordinator.prepareResultSink(Coordinator.java:613) ~[starrocks-fe.jar:?]

    at com.starrocks.qe.Coordinator.exec(Coordinator.java:434) ~[starrocks-fe.jar:?]

    at com.starrocks.qe.StmtExecutor.handleQueryStmt(StmtExecutor.java:704) ~[starrocks-fe.jar:?]

    at com.starrocks.qe.StmtExecutor.execute(StmtExecutor.java:397) ~[starrocks-fe.jar:?]

    at com.starrocks.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:322) ~[starrocks-fe.jar:?]

    at com.starrocks.qe.ConnectProcessor.dispatch(ConnectProcessor.java:440) ~[starrocks-fe.jar:?]

    at com.starrocks.qe.ConnectProcessor.processOnce(ConnectProcessor.java:676) ~[starrocks-fe.jar:?]

    at com.starrocks.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:55) ~[starrocks-fe.jar:?]

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_74]

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_74]

    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_74]

Caused by: com.baidu.jprotobuf.pbrpc.ErrorDataException: A error occurred: errorCode=62 errorMessage:method request time out, please check ‘onceTalkTimeout’ property. current value is:60000(MILLISECONDS) correlationId:2721763486 timeout with bound channel =>[id: 0xb213deb4, L:/10.2.72.238:42476 - R:/10.2.72.115:8060]

    at com.baidu.jprotobuf.pbrpc.client.ProtobufRpcProxy.doWaitCallback(ProtobufRpcProxy.java:651) ~[jprotobuf-rpc-core-4.2.1.jar:?]

    at com.baidu.jprotobuf.pbrpc.client.ProtobufRpcProxy.access$0(ProtobufRpcProxy.java:611) ~[jprotobuf-rpc-core-4.2.1.jar:?]

    at com.baidu.jprotobuf.pbrpc.client.ProtobufRpcProxy$2.get(ProtobufRpcProxy.java:576) ~[jprotobuf-rpc-core-4.2.1.jar:?]

    ... 11 more

2023-09-11 10:10:00,302 WARN (starrocks-mysql-nio-pool-305896|1189777) [Coordinator.prepareResultSink():634] exec plan fragment failed, errmsg=exec rpc error. backend id: 11009, code: THRIFT_RPC_ERROR, fragmentId=F01, backend=10.2.72.115:9060

2023-09-11 10:10:00,303 WARN (starrocks-mysql-nio-pool-305896|1189777) [SimpleScheduler.addToBlacklist():143] add black list 11009

2023-09-11 10:10:00,303 WARN (starrocks-mysql-nio-pool-305896|1189777) [StmtExecutor.execute():408] retry 1 times. stmt: select count(distinct conn_id) as connid from user_enters_session_statistics_v2 where user_id = 159079459 and data_time = ’ 2023-09-11 00:00:00 ’ and isactive = 1 ;

2023-09-11 10:10:00,360 WARN (starrocks-mysql-nio-pool-305904|1189785) [ReadListener.lambda$handleEvent$0():63] Exception happened in one session(com.starrocks.mysql.nio.NConnectContext@390b4463).

java.io.IOException: Error happened when receiving packet.

    at com.starrocks.qe.ConnectProcessor.processOnce(ConnectProcessor.java:667) ~[starrocks-fe.jar:?]

    at com.starrocks.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:55) ~[starrocks-fe.jar:?]

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_74]

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_74]

    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_74]

2023-09-11 10:10:00,403 WARN (starrocks-mysql-nio-pool-305896|1189777) [ReadListener.lambda$handleEvent$0():63] Exception happened in one session(com.starrocks.mysql.nio.NConnectContext@7345772c).

java.io.IOException: Error happened when receiving packet.

    at com.starrocks.qe.ConnectProcessor.processOnce(ConnectProcessor.java:667) ~[starrocks-fe.jar:?]

    at com.starrocks.mysql.nio.ReadListener.lambda$handleEvent$0(ReadListener.java:55) ~[starrocks-fe.jar:?]

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_74]

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_74]

    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_74]

上下文日志也已上传。
看社区也有类似的贴子,但是这边是没有路由器防火墙的,这个情况也是第一次发生。还请帮忙看下。

【背景】重启该be后服务慢慢恢复
【业务影响】无法提供服务
【StarRocks版本】2.3.3
【集群规模】3fe+9be
【机器信息】CPU虚拟核/内存/网卡,fe:40C/256G/万兆 ,be: 40C/256G/万兆 和 48C/256G/万兆
【联系方式】qinhao01@xinye.com

log_TMP.rar (56.1 MB)

出现问题时间 2023-09-11 10:07:30左右
该be的重启时间是2023-09-11 10:22分左右

当时的 cpu 内存 io utils 等监控有么,另外有当时的 top结果 或者 打印 pstack 信息么

pstack信息和top结果估计是没有的。cpu监控是有的


在有问题期间的cpu的使用是相对比较低的。


总的来说异常期间的查询量是比较小的,资源使用反而不高

当前是 2.3.3版本么,是否考虑升级到 2.3.17 最新版

异常期间的因为都卡住阻塞了,各项监控看起来反而使用率不高,可以到监控中找找有没有哪个是在 异常前 突增的,或者在异常出现时,业务上是否有较多的复杂查询或者导入,是否存在慢查询阻塞问题

对,是这个版本,但是这个异常前突增的不太好找。2.3.17版本有什么优化么?

能找到啥信息么?

我们这边看会有个查询达到资源组限制(扫描行数),被取消的日志,别的就没看到什么比较异常的地方了。

FE 搜索下 reject,是否有这个日志

您好!没有搜索到reject相关的日志

异常期间的FE和BE日志可以提供一下, 下次发生此类异常时, 可以每隔15~30秒拿一下BE pstack日志供我们更详细深入的分析问题.

异常期间的日志已经上传了。

如果下次有类似问题我可以收集下

能换成zip压缩的格式吗?

be.zip (50.8 MB)

fe.zip (35.9 MB)
您好,已重新压缩上传

pstack.txt (406.7 KB)

今天下午也有这种情况,重启前采集了下pstack

这个pstack已经能说明问题了, 谢谢!

好的,如果确认是什么问题还请告知我们

导入频率太高, 已经出现’too many versions’积压错误, 可以尝试降低导入频率.

Fail to open fragment, instance_id=58471a6d-b6e4-208d-d8b3-afb714545495, status=Service unavailable: Too many versions. tablet_id: 10050156, version_count: 1001, limit: 1000