写入数据时开启spill_mode=force后开窗计算的逻辑异常

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】写入数据时开启spill_mode=force后开窗计算的逻辑异常
【背景】降低sql占用的内存 尝试开启配置强制spill,其中一个计算逻辑异常导致分摊的数据不对
异常SQL片段


sql出来的结果不对 从计算逻辑分析可能的异常点是开窗的时候没有统计全部数据

【业务影响】
【是否存算分离】
【StarRocks版本】3.2.14
【集群规模】例如:3fe(1 follower+2observer)+5be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆
【联系方式】社区群22 hpp
【附件】
profile
spill_auto:spill_auto.txt (466.7 KB)
spill_force:spill_foce.txt (480.7 KB)

  • be crash
    • be.out
  • 外表查询报错
    • be.out和fe.warn.log

发一下两种情况下的执行计划(explain + sql)。 如果方便,麻烦提供一下相关的ddl和最小复现数据,方便复现定位问题

这个sql比较复杂,我先尝试最小case复现。大佬看下sql+explain能不能看出来问题
insert.log (1.8 MB)
spill_force_insert.sql (39.8 KB)
spill_auto_insert.sql (39.8 KB)

set enable_agg_spill_preaggregation=false;
麻烦加上这个试试,看看结果一致不

在spill_mode=force的情况下加了这个配置也不行

如果关了spill,查询结果和哪个是一致的?

图上第一次查询的 两条记录开窗后计算结果应该是分摊的比例,开了强制spill后应该是开窗的结果变成1了

好的,方便提供个最小复现case么?我们来看一下