查询paimon0.8外表查询报错:java.io.IOException: Failed to get the next off-heap table chunk of paimon

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】对paimon(0.8+)表array<row<c_id string,c_name string>>类型字段的查询报错:Failed to call the nextChunkOffHeap method of off-heap table scanner. java exception details: java.io.IOException: Failed to get the next off-heap table chunk of paimon
【背景】做过哪些操作?
paimon:0.8+ (尝试过存储格式为orc、parquet都会有问题)
flink:1.18
1、创表
CREATE TABLE
t3 (
theme_id string NOT NULL COMMENT ‘主键,全局唯一id’,
category_ids array<row<c_id string,c_name string>> COMMENT ‘品类id’,
update_time TIMESTAMP(0) COMMENT ‘更新时’,
PRIMARY KEY ( theme_id ) NOT ENFORCED
)
WITH
(
‘bucket’ = ‘1’,
‘merge-engine’ = ‘partial-update’,
‘fields.update_time.sequence-group’ = ‘category_ids’,
‘changelog-producer’ = ‘lookup’,
‘fields.category_ids.aggregate-function’ = ‘collect’,
‘fields.category_ids.distinct’ = ‘true’
);
insert into t3 values ( ‘1’, array[row (‘id1’, ‘name1’)],cast(‘2024-08-14 10:00:00’ as TIMESTAMP));
insert into t3 values ( ‘1’, array[row (‘id2’, ‘name2’)],cast(‘2024-08-14 10:00:00’ as TIMESTAMP));
insert into t3 values ( ‘1’, array[row (‘id3’, ‘name3’)],cast(‘2024-08-14 10:00:00’ as TIMESTAMP));
insert into t3 values ( ‘1’, array[row (‘id4’, ‘name4’)],cast(‘2024-08-14 10:00:00’ as TIMESTAMP));
2、 starrocks查询(3.3.1)
select * from paimon08_catalog_fs. default . t3 ;
然后报错:
FAILED: Failed to call the nextChunkOffHeap method of off-heap table scanner. java exception details: java.io.IOException: Failed to get the next off-heap table chunk of paimon.
at com.starrocks.paimon.reader.PaimonSplitScanner.getNext(PaimonSplitScanner.java:163)
at com.starrocks.jni.connector.ConnectorScanner.getNextOffHeapChunk(ConnectorScanner.java:101)
Caused by: java.lang.ClassCastException: class org.apache.paimon.data.NestedRow cannot be cast to class org.apache.paimon.data.columnar.ColumnarRow (org.apache.paimon.data.NestedRow and org.apache.paimon.data.columnar.ColumnarRow are in unnamed module of loader com.starrocks.utils.loader.ChildFirstClassLoader @3c321bdb)
at com.starrocks.paimon.reader.PaimonColumnValue.unpackStruct(PaimonColumnValue.java:113)
at com.starrocks.jni.connector.OffHeapColumnVector.appendValue(OffHeapColumnVector.java:568)
at com.starrocks.jni.connector.OffHeapColumnVector.appendArray(OffHeapColumnVector.java:426)
at com.starrocks.jni.connector.OffHeapColumnVector.appendValue(OffHeapColumnVector.java:556)
at com.starrocks.jni.connector.OffHeapTable.appendData(OffHeapTable.java:95)
at com.starrocks.jni.connector.ConnectorScanner.appendData(ConnectorScanner.java:86)
at com.starrocks.paimon.reader.PaimonSplitScanner.getNext(PaimonSplitScanner.java:153)

【业务影响】
【是否存算分离】否
【StarRocks版本】例如:3.3.1
【集群规模】例如:1fe,3be
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【联系方式】为了在解决问题过程中能及时联系到您获取一些日志信息,请补充下您的联系方式,例如:社区群4-小李或者邮箱,谢谢
【附件】

  • fe.log/beINFO/相应截图
  • 慢查询:
    • Profile信息
    • 并行度:show variables like ‘%parallel_fragment_exec_instance_num%’;
    • pipeline是否开启:show variables like ‘%pipeline%’;
    • be节点cpu和内存使用率截图
  • 查询报错:
    dump_file (13.3 KB)
  • be crash
    • be.out
  • 外表查询报错
    • be.out和fe.warn.log
      fe.warn.log:
      2024-08-22 11:56:30.090+08:00 WARN (thrift-server-pool-2594494|2670251) [DefaultCoordinator.updateFragmentExecStatus():946] exec state report failed status=errorCode INTERNAL_ERROR Failed to call the nextChunkOffHeap method of off-heap table scanner. java exception details: java.io.IOException: Failed to get the next off-heap table chunk of paimon.
      at com.starrocks.paimon.reader.PaimonSplitScanner.getNext(PaimonSplitScanner.java:163)
      at com.starrocks.jni.connector.ConnectorScanner.getNextOffHeapChunk(ConnectorScanner.java:101)
      Caused by: java.lang.ClassCastException: class org.apache.paimon.data.NestedRow cannot be cast to class org.apache.paimon.data.columnar.ColumnarRow (org.apache.paimon.data.NestedRow and org.apache.paimon.data.columnar.ColumnarRow are in unnamed module of loader com.starrocks.utils.loader.ChildFirstClassLoader @3c321bdb)
      at com.starrocks.paimon.reader.PaimonColumnValue.unpackStruct(PaimonColumnValue.java:113)
      at com.starrocks.jni.connector.OffHeapColumnVector.appendValue(OffHeapColumnVector.java:568)
      at com.starrocks.jni.connector.OffHeapColumnVector.appendArray(OffHeapColumnVector.java:426)
      at com.starrocks.jni.connector.OffHeapColumnVector.appendValue(OffHeapColumnVector.java:556)
      at com.starrocks.jni.connector.OffHeapTable.appendData(OffHeapTable.java:95)
      at com.starrocks.jni.connector.ConnectorScanner.appendData(ConnectorScanner.java:86)
      at com.starrocks.paimon.reader.PaimonSplitScanner.getNext(PaimonSplitScanner.java:153)
      … 1 more
      , query_id=8339fd52-603a-11ef-93e1-00163e313e48, instance_id=8339fd52-603a-11ef-93e1-00163e313e4a, backend_id=10006
      2024-08-22 11:56:30.090+08:00 WARN (thrift-server-pool-2594494|2670251) [DefaultCoordinator.updateStatus():760] one instance report fail throw updateStatus(), need cancel. job id: -1, query id: 8339fd52-603a-11ef-93e1-00163e313e48, instance id: 8339fd52-603a-11ef-93e1-00163e313e4a
      2024-08-22 11:56:30.091+08:00 WARN (thrift-server-pool-4030710|4146759) [DefaultCoordinator.updateFragmentExecStatus():946] exec state report failed status=errorCode CANCELLED InternalError, query_id=8339fd52-603a-11ef-93e1-00163e313e48, instance_id=8339fd52-603a-11ef-93e1-00163e313e49, backend_id=10004
      2024-08-22 11:56:30.099+08:00 WARN (starrocks-mysql-nio-pool-265|4146767) [DefaultCoordinator.getNext():785] get next fail, need cancel. status errorCode CANCELLED InternalError, query id: 8339fd52-603a-11ef-93e1-00163e313e48
      2024-08-22 11:56:30.099+08:00 WARN (starrocks-mysql-nio-pool-265|4146767) [DefaultCoordinator.getNext():811] query failed: Failed to call the nextChunkOffHeap method of off-heap table scanner. java exception details: java.io.IOException: Failed to get the next off-heap table chunk of paimon.
      at com.starrocks.paimon.reader.PaimonSplitScanner.getNext(PaimonSplitScanner.java:163)
      at com.starrocks.jni.connector.ConnectorScanner.getNextOffHeapChunk(ConnectorScanner.java:101)
      Caused by: java.lang.ClassCastException: class org.apache.paimon.data.NestedRow cannot be cast to class org.apache.paimon.data.columnar.ColumnarRow (org.apache.paimon.data.NestedRow and org.apache.paimon.data.columnar.ColumnarRow are in unnamed module of loader com.starrocks.utils.loader.ChildFirstClassLoader @3c321bdb)
      at com.starrocks.paimon.reader.PaimonColumnValue.unpackStruct(PaimonColumnValue.java:113)
      at com.starrocks.jni.connector.OffHeapColumnVector.appendValue(OffHeapColumnVector.java:568)
      at com.starrocks.jni.connector.OffHeapColumnVector.appendArray(OffHeapColumnVector.java:426)
      at com.starrocks.jni.connector.OffHeapColumnVector.appendValue(OffHeapColumnVector.java:556)
      at com.starrocks.jni.connector.OffHeapTable.appendData(OffHeapTable.java:95)
      at com.starrocks.jni.connector.ConnectorScanner.appendData(ConnectorScanner.java:86)
      at com.starrocks.paimon.reader.PaimonSplitScanner.getNext(PaimonSplitScanner.java:153)
      … 1 more

2024-08-22 11:56:30.099+08:00 WARN (starrocks-mysql-nio-pool-265|4146767) [StmtExecutor.execute():645] Query 8339fd52-603a-11ef-93e1-00163e313e48 failed. Planner profile : Planner:
Reason:

2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030697|4146744) [LeaderImpl.finishTask():198] finish task reports bad. request: TFinishTaskRequest(backend:TBackend(host:172.28.2.88, be_port:9060, http_port:18040), task_type:CLONE, signature:25105, task_status:TStatus(status_code:RUNTIME_ERROR, error_msgs:[local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1]))
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030697|4146744) [LeaderImpl.finishTask():246] task type: CLONE, status_code: RUNTIME_ERROR, local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1, backendId: 10005, signature: 25105
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030727|4146779) [LeaderImpl.finishTask():198] finish task reports bad. request: TFinishTaskRequest(backend:TBackend(host:172.28.2.89, be_port:9060, http_port:18040), task_type:CLONE, signature:25008, task_status:TStatus(status_code:RUNTIME_ERROR, error_msgs:[local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1]))
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030727|4146779) [LeaderImpl.finishTask():246] task type: CLONE, status_code: RUNTIME_ERROR, local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1, backendId: 10004, signature: 25008
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030689|4146736) [LeaderImpl.finishTask():198] finish task reports bad. request: TFinishTaskRequest(backend:TBackend(host:172.28.2.88, be_port:9060, http_port:18040), task_type:CLONE, signature:10081, task_status:TStatus(status_code:RUNTIME_ERROR, error_msgs:[local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1]))
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030692|4146739) [LeaderImpl.finishTask():198] finish task reports bad. request: TFinishTaskRequest(backend:TBackend(host:172.28.2.88, be_port:9060, http_port:18040), task_type:CLONE, signature:10129, task_status:TStatus(status_code:RUNTIME_ERROR, error_msgs:[local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1]))
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030720|4146772) [LeaderImpl.finishTask():198] finish task reports bad. request: TFinishTaskRequest(backend:TBackend(host:172.28.2.88, be_port:9060, http_port:18040), task_type:CLONE, signature:10114, task_status:TStatus(status_code:RUNTIME_ERROR, error_msgs:[local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1]))
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030689|4146736) [LeaderImpl.finishTask():246] task type: CLONE, status_code: RUNTIME_ERROR, local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1, backendId: 10005, signature: 10081
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030720|4146772) [LeaderImpl.finishTask():246] task type: CLONE, status_code: RUNTIME_ERROR, local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1, backendId: 10005, signature: 10114
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030692|4146739) [LeaderImpl.finishTask():246] task type: CLONE, status_code: RUNTIME_ERROR, local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1, backendId: 10005, signature: 10129
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030722|4146774) [LeaderImpl.finishTask():198] finish task reports bad. request: TFinishTaskRequest(backend:TBackend(host:172.28.2.88, be_port:9060, http_port:18040), task_type:CLONE, signature:10147, task_status:TStatus(status_code:RUNTIME_ERROR, error_msgs:[local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1]))
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030723|4146775) [LeaderImpl.finishTask():198] finish task reports bad. request: TFinishTaskRequest(backend:TBackend(host:172.28.2.88, be_port:9060, http_port:18040), task_type:CLONE, signature:10162, task_status:TStatus(status_code:RUNTIME_ERROR, error_msgs:[local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1]))
2024-08-22 11:56:34.650+08:00 WARN (thrift-server-pool-4030722|4146774) [LeaderImpl.finishTask():246] task type: CLONE, status_code: RUNTIME_ERROR, local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1, backendId: 10005, signature: 10147
2024-08-22 11:56:34.651+08:00 WARN (thrift-server-pool-4030723|4146775) [LeaderImpl.finishTask():246] task type: CLONE, status_code: RUNTIME_ERROR, local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1, backendId: 10005, signature: 10162
2024-08-22 11:56:34.651+08:00 WARN (thrift-server-pool-4030728|4146780) [LeaderImpl.finishTask():198] finish task reports bad. request: TFinishTaskRequest(backend:TBackend(host:172.28.2.88, be_port:9060, http_port:18040), task_type:CLONE, signature:10144, task_status:TStatus(status_code:RUNTIME_ERROR, error_msgs:[local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1]))
2024-08-22 11:56:34.651+08:00 WARN (thrift-server-pool-4030728|4146780) [LeaderImpl.finishTask():246] task type: CLONE, status_code: RUNTIME_ERROR, local tablet migration failed. error message: Fail to capture consistent rowsets. version: 1, backendId: 10005, signature: 10144