SR外表导数报close index channel failed - 目标集群写入request中txnid=0

【详述】在SR外表导数中遇到以下两个问题
1.SR外表导数报close index channel failed — 目标集群写入request中txnid=0
2.SR外表导数任务失败,报 java.net.SocketTimeoutException:Read timed out,但数据正常写入到目标集群,可正常查询
问题1 在某一天频繁出现,之后复现不出来
问题2 在最近的使用中频繁出现

【背景】通过SR外表将源集群表数据导入到目标集群 - 数据表使用聚合模型,不分区1500个分桶2个副本,在starrocks中show data显示源集群数据表的数据量600G(2副本).
源集群是业务主要使用集群,目前每天的数据导入量巨大,查询很少
集群修改的配置信息如下:
be.conf
源集群:
streaming_load_rpc_max_alive_time_sec = 2400
tablet_writer_open_rpc_timeout_sec = 1200
cumulative_compaction_num_threads_per_disk = 6
base_compaction_num_threads_per_disk = 6
目标集群:
streaming_load_rpc_max_alive_time_sec = 2400
tablet_writer_open_rpc_timeout_sec = 1200
cumulative_compaction_num_threads_per_disk = 2
base_compaction_num_threads_per_disk = 2
【业务影响】
【StarRocks版本】1.19.5
【集群规模】源集群:3fe(3 follower) +5be(fe与be混部) 目标集群:3fe(3 follower) + 7be(fe与be混部)
【机器信息】源集群:80C/1.5T/万 目标集群:80C/256G/万兆
【附件】
复现步骤:

  1. 在源集群创建 Aggregate key模型,不分区1500个分桶,2个副本的数据表ads_cs_service_waybill_mid_di_1957
    建表语句如下:
    CREATE TABLE ads_cs_service_waybill_mid_di_1957 (
    waybill_no varchar(200) NULL,
    inc_day date REPLACE_IF_NOT_NULL NULL,
    等145个字段,聚合类型均为 REPLACE_IF_NOT_NULL
    ) ENGINE=OLAP
    AGGREGATE KEY(waybill_no)
    DISTRIBUTED BY HASH(waybill_no) BUCKETS 1500
    PROPERTIES (
    “replication_num” = “2”,
    “in_memory” = “false”,
    “storage_format” = “DEFAULT”
    );
  2. 在目标集群上创建相同的表 ads_test.ads_cs_service_waybill_mid_di
  3. 在源集群上创建到目标集群的SR外表 mid_external_1500buckets,其中host为源集群的master节点
    CREATE EXTERNAL TABLE mid_external_1500buckets (
    waybill_no varchar(200) NULL ,
    inc_day date REPLACE_IF_NOT_NULL NULL",
    等145个字段,聚合类型均为 REPLACE_IF_NOT_NULL
    )
    AGGREGATE KEY(waybill_no)
    DISTRIBUTED BY HASH(waybill_no) BUCKETS 1500
    PROPERTIES (
    “replication_num” = “2”,
    “in_memory” = “false”,
    “storage_format” = “DEFAULT”,
    “host” = “10.152.3.36”,
    “port” = “9020”,
    “user” = “root”,
    “password” = “xxx”,
    “database” = “ads_test”,
    “table” = “ads_cs_service_waybill_mid_di”
    );
  4. 在源集群上导入数据到SR外表中,导入sql
    set query_timeout=14400;
    insert into mid_external_1500buckets with label mid_external_1500buckets_0211_1418 select /*+ set_var(parallel_fragment_exec_instance_num = 10,query_timeout=14400) */ * from ads_cs_service_waybill_mid_di_1957;
  1. 在be节点 be.INFO 中找到报错的load_id
  2. 在所有be节点的 be.INFO中查找load id,找到报错的be节点
  3. 到该be节点继续用load_id查找 be.INFO,查看线程上下文,显示目标集群无法连接,目标集群上该load任务的写入request中txn_id=0

  4. 在这个时间节点目标集群所有be节点都重启了

    目标集群be.out
  5. 在目标集群 be.INFO中 搜 F0127


    目标集群be节点cpu和内存使用率截图

  6. 其他信息:
    目标集群fe和be信息

  • 问题2 排查步骤
    SR外表导数任务失败,报 java.net.SocketTimeoutException:Read timed out,但数据正常写入到目标集群,可正常查询
  1. 报错信息如下图
  2. 源集群beINFO中查找load_id

  3. 拿到该任务的txn_id,分别在源集群和目标集群中查找,发现有publish成功的日志
    源集群:

    目标集群:

请问下这个问题有复现吗?辛苦发下完整的日志

遇到这个问题建议您可以在be日志中搜索下fatal相关的日志