taosdata / taosdata/TDengine

long varchar tag makes taosd no response, assert fatal found in taosd.log

Open
#23,635 1 comment 0 reactions 1 assignee View on GitHub

@yu285 is already working on this.

Since Nov 10, 2023.

bug
Dominant language
C
Stars
25.1k
Forks
5k
Avg merge
4d 59m
Merged PRs (30d)
7

Description

Bug Description
A clear and concise description of what the bug is.

When insert million record into stable, with a stream insert related data into another stable ,both stable include a long varchar(4098) TAG,then after a few time, tdengine 3.1.2 will abort ,and tdengine 3.2.0 will no response for select dmls;

looking for reason in taosd.log, a assert error can be found like this

WechatIMG517

To Reproduce
Steps to reproduce the behavior:

  1. First create stalbe and stream using the follower sqls:
create stable if not exists stable_t1(ts timestamp, v double) TAGS(sss varchar(4098));

create stream if not exists stream_s1 INTO s_stable_t2 TAGS(sss varchar(4098)) SUBTABLE(concat()) AS select _wstart as wstart, avg(v) as avg_v, tbname FROM stable_t1 PARTITION BY sss, tbname as tname INTERVAL(1m);
  1. then execute insert into stalbe_t1 value () for millions times;
  2. then execute select count(*) from stable_t1; or other select dml, query will hang and no data response

Expected Behavior
select and insert can be exec all the time

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

  • OS: CentOS 7.9
  • DOCKER, host memory 256G, CPU 96Core, current Disk Space 500GB
  • TDengine Version 3.2.0/3.1.2

Additional Context

if there a limit on TAGS when creating stream? when create stream using the sql above
create stream if not exists stream_s1 INTO s_stable_t2 TAGS(sss varchar(4098)) ....,the TAGS type cannot be varchar(10240), and 4098 is the max number i tested, is it an official limitation?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.