spark connector 读数据时报错: Set cancelled by MemoryScratchSinkOperator

【详述】spark connector 读数据时报错: Set cancelled by MemoryScratchSinkOperator
【背景】
【业务影响】
【StarRocks版本】2.5.6
【集群规模】3fe +5be(fe与be混部)
【机器信息】32C/128G/万兆
【联系方式】StarRocks 社区群 3; 如斯
【附件】
spark connector 端报错

com.starrocks.connector.spark.exception.StarrocksInternalException: StarRocks server StarRocks BE{host='10.65.23.237', port=9060} internal failed, status code [CANCELLED] error message is [Set cancelled by MemoryScratchSinkOperator]
	at com.starrocks.connector.spark.backend.BackendClient.getNext(BackendClient.java:192)
	at com.starrocks.connector.spark.rdd.ScalaValueReader.hasNext(ScalaValueReader.scala:197)
	at com.starrocks.connector.spark.rdd.AbstractStarrocksRDDIterator.hasNext(AbstractStarrocksRDDIterator.scala:58)

be报错:

完整be.WARNING日志be.WARNING (45.0 KB)

这个像一个已知但还没修复的问题。好像重启BE可以恢复

搜索下这个644c02b7-1467-d366-956a-4006ab0c8793是不是一直在Cancal,或是pstack打下这个BE的堆栈

检索了下BE的info和warning日志,这个644c02b7-1467-d366-956a-4006ab0c8793就只有那次读取的时候报了cancelled,这是完整的BE堆栈信息be.stack (673.1 KB)

这个Pstack是BE重启后打的?

这个Pstack是BE重启后打的?

BE没有重启,这个堆栈是今天早上的,但是出问题的时间点是昨天下午

执行了多少时间报错的

读取任务提交到BE还没5秒就报错了

测试了下,重启BE问题还是一样,这两份是最新的warning日志和BE堆栈信息,麻烦看下be.stack (668.2 KB) be.WARNING (35.3 KB)

我们先分析下,再给你答复

请问这个问题有结论了吗

还没有,还在分析

@trueeyu大佬,请问这个问题是已知的BUG造成的吗,还是新发现的还没修复的BUG呢

这个问题解决了吗?我也碰到这个问题了

当前的这块的设计不太合理,需要通过调参规避下。

我用flink读取SR的时候也遇到了相同的问题,请问要怎么调参规避呢?
CANCELLED msg:[Set cancelled by MemoryScratchSinkOperator]

Spark的话,把这个值调小: starrocks.request.tablet.size , 调小有内存暴涨的风险,比如这个表100个Tablet,可以改成10, 这样就会起100/10=10个任务并行。Flink的话,没有参数可以调,可以提高Flink的并发,让任务在30分钟内跑完,不然会有问题。后面我们会优化这块的设计,当前的设计有些问题。

@U_1649754113481_5857 请问最新还有遇到这个问题吗