调用无参st_area()函数导致CnosDB崩溃的原因排查
CnosDB调用无参
st_area()崩溃原因解析 - 根本原因:
st_area()函数的实现未覆盖「无参数传入」的边界场景,当没有传入合法地理空间对象参数时,内部逻辑生成了Null类型数据,但后续处理代码错误地将其当作Utf8类型数据来操作,触发了Arrow数组库的断言校验失败。 - 触发细节:执行SQL语句
select st_area();时,函数没有获取到有效输入,生成的空值数据与代码预期的Utf8类型不匹配,直接触发了arrow-array-42.0.0库中byte_array.rs:454位置的断言(该断言用于保障数据类型一致性,防止非法类型访问引发内存问题)。 - 崩溃表现:断言失败直接导致CnosDB进程异常终止,客户端因此收到
connection closed before message completed的连接中断报错,同时日志中会输出「Null与Utf8不匹配」的断言失败信息。
内容的提问来源于stack exchange,提问作者Baker X
相关产品推荐
相关产品推荐

