存算分离版本建表和导入数据失败

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】问题详细描述
【背景】做过哪些操作?
【业务影响】
【是否存算分离】
【StarRocks版本】3.3.6
【集群规模】1fe + 1cn
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【联系方式】为了在解决问题过程中能及时联系到您获取一些日志信息,请补充下您的联系方式,例如:社区群4-小李或者邮箱,谢谢
【附件】

创建表失败:
create table table10(c1 int);
ERROR 10005 (42000): No alive backend or compute node in warehouse name: default_warehouse.

*************************** 1. row ***************************
ComputeNodeId: 10073
IP: 10.176.74.151
HeartbeatPort: 9050
BePort: 9060
HttpPort: 8040
BrpcPort: 8060
LastStartTime: 2025-03-03 19:15:01
LastHeartbeat: 2025-03-04 10:56:32
Alive: true
SystemDecommissioned: false
ClusterDecommissioned: false
ErrMsg:
Version: 3.3.6-U1.1-1677a4c
CpuCores: 40
MemLimit: 25.200GB
NumRunningQueries: 1
MemUsedPct: 2.90 %
CpuUsedPct: 12.8 %
DataCacheMetrics: Status: Normal, DiskUsage: 0B/1.7TB, MemUsage: 0B/0B
HasStoragePath: true
StarletPort: 9070
WorkerId: 1
WarehouseName: default_warehouse
TabletNum: 90
1 row in set (0.00 sec)
cn节点正常

fe日志中存在报错信息
[StarletAgent.addShard():135] caught exception when sending add shard to worker 10.176.74.151:9070, io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED: Deadline Exceeded.

@ lvlouisaslia

同时导入任务也报错:
W20250304 11:41:24.528023 140349034755840 stream_load.cpp:159] Fail to handle streaming load, id=38418fb8db485d64-4177db0ba7a07ca4 errmsg=[E1008]Reached timeout=300000ms @10.176.74.151:8060 id=38418fb8db485d64-4177db0ba7a07ca4, job_id=-1, txn_id: 28132, label=audit_20250304_113624_10_177_118_121_9010, db=starrocks_audit_db__

重启cn后可以正常创建表和导入数据,但是执行几次后又会出现上面的问题

出问题时, 拿一下CN进程的pstack

p.log (887.2 KB)

@lvlouisaslia 佬有什么进展吗

死锁了, 是用的什么分布式存储? HDFS吗?

Version: 3.3.6-U1.1-1677a4c

这是你们自己在社区版本上增加了哪些代码?

是hdfs,和社区的区别在于我们替换了Hadoop版本到3.2.1,能看到死锁原因吗

还有加别的吗? 这是在brpc thread里用了pthread锁的原因. 死锁时取一个coredump, 我确认一下.

没有别的了,我该怎么操作下

启动CN时看一下ulimit -c, 允许coredump. CN进程死锁时, 用gdb带的gcore {pid} 生成 core文件.

下载不了, 你可以用gdb打开core, 切换到含有AddShard调用的线程, 看停留代码的mutex对象的记录的owner线程是哪个(https://github.com/StarRocks/starrocks/blob/3.3.6/be/src/service/staros_worker.cpp#L83), 再对应看看这个线程当前的stack trace

邮箱地址发下,我发你邮箱吧

caixh.kevin@gmail.com

同这个问题: https://github.com/StarRocks/starrocks/issues/54493

在后续版本里修复了. 无法升级新版本的, 可以临时手动加上https://github.com/StarRocks/starrocks/pull/55522 修复, 重新编译BE代码.

你好,我当前使用的版本3.3.9 基于hdfs的存算分离也碰到这个问题了,请问这个bug目前有提供的版本吗?或者后续在哪个版本修复呢?

3.3.11版本已经修复