创建流式计算,使用concat方式创建数字拼接出现服务器宕机情况

【TDengine 使用环境】
预生产环境

【TDengine 版本】

3.4.2

【操作系统以及版本】

Linux

【部署方式】容器

【集群节点数】

【集群副本数】

【描述业务影响】

【问题复现路径/shan】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】

创建流式计算,使用concat方式创建数字拼接出现服务器宕机情况

【资源配置】

【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)


语句如上,创建成功后,running后就可以无法访问服务了

是 taosd 会 crash 吗?我本地简单试了一下,没有复现。能不能提供 crash 的堆栈信息?
另外,单独执行这条查询可以成功吗:

select
  last(ts) as ts,
  avg(test_value) as avg_test_value,
  group_concat(test_value_str, ',') as test_value_array
from
  stdf.s_ptr_data;

单独执行查询是成功的,流式计算running的时候才crash

没有堆栈信息报出来,使用的docker部署的服务,一旦流式计算运行起来,整个docker服务就无法访问了。3.4版本原来concat方法查询也会crash,现在3.4.2查询正常,但是编写进流式计算就又不行了

这是对应的超级表的建表语句:
CREATE STABLE IF NOT EXISTS s_ptr_data (
ts TIMESTAMP,
test_value double,
test_flag INT,
hi_limit double,
lo_limit double
) TAGS (
factory VARCHAR(32),
fileid VARCHAR(64),
testnum INT,
testtxt VARCHAR(256),
headnum INT,
sitenum INT,
productid VARCHAR(64),
lotid VARCHAR(64),
sublotid VARCHAR(64),
jobname VARCHAR(128),
flowid VARCHAR(32),
datatype VARCHAR(10),
nodename VARCHAR(32),
dutindex INT
);

感谢反馈!我在本地再试试,看能否复现。

本地模拟有几个问题:

  1. 建流语句中没有指定输出表
  2. test_value_str 没有定义

我补充之后,建流时 GROUP_CONCAT 就会报错:

taos> CREATE STABLE IF NOT EXISTS s_ptr_data (
    >     ts TIMESTAMP,
    >     test_value double,
    >     test_value_str VARCHAR(16),
    >     test_flag INT,
    >     hi_limit double,
    >     lo_limit double
    > ) TAGS (
    >     factory VARCHAR(32),
    >     fileid VARCHAR(64),
    >     testnum INT,
    >     testtxt VARCHAR(256),
    >     headnum INT,
    >     sitenum INT,
    >     productid VARCHAR(64),
    >     lotid VARCHAR(64),
    >     sublotid VARCHAR(64),
    >     jobname VARCHAR(128),
    >     flowid VARCHAR(32),
    >     datatype VARCHAR(10),
    >     nodename VARCHAR(32),
    >     dutindex INT
    > );
Create OK, 0 row(s) affected (0.015924s)

taos> 
taos> CREATE STREAM s1 COUNT_WINDOW(1)
    > FROM s_ptr_data PARTITION BY tbname
    > INTO output
    > AS
    > SELECT LAST(ts) AS ts, AVG(test_value) AS avg_test_value, GROUP_CONCAT(test_value_str, ',') AS test_value_array
    > FROM s_ptr_data;

DB error: Row length exceeds max length 65531 [0x8000263E] (0.029885s)

如上的错误是流本身的问题,还是应用设计的问题?

请问如何解决呢?