in some senario empty key will cause crash like ``` *** tablet *** SIGSEGV unknown detail explain (@0x0) received by PID 1527747 ( TID 1544788 OR 0x7f3302988700) from PID 0; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t* , void*) at /mnt/disk2/lihangyu/doris/be/src/common/signal_handler.h:429 1# 0x00007F4880A12B50 in /lib64/libc.so.6 2# doris::vectorized::PathInDataBuilder::append(std::basic_string_view<char, std::char_traits<char> >, bool) at /mnt/disk2/lihangyu/doris/be/src/vec/json/p ath_in_data.cpp:193 3# doris::vectorized::JSONDataParser<doris::vectorized::SimdJSONParser, false >::traverseObject(doris::vectorized::SimdJSONParser::Object const&, doris::vec torized::JSONDataParser<doris::vectorized::SimdJSONParser, false>::ParseContex t&) at /mnt/disk2/lihangyu/doris/be/src/vec/json/json_parser.cpp:121 4# doris::vectorized::JSONDataParser<doris::vectorized::SimdJSONParser, false >::traverse(doris::vectorized::SimdJSONParser::Element const&, doris::vectoriz ed::JSONDataParser<doris::vectorized::SimdJSONParser, false>::ParseContext&) a t /mnt/disk2/lihangyu/doris/be/src/vec/json/json_parser.cpp:95 5# doris::vectorized::JSONDataParser<doris::vectorized::SimdJSONParser, false >::parse(char const*, unsigned long) at /mnt/disk2/lihangyu/doris/be/src/vec/j son/json_parser.cpp:81 ``` ## Proposed changes Issue Number: close #xxx <!--Describe your changes.-->
新加case注意事项
-
变量名前要写 def,否则是全局变量,并行跑的 case 的时候可能被其他 case 影响。
Problematic code:
ret = ***Correct code:
def ret = *** -
尽量不要在 case 中 global 的设置 session variable,或者修改集群配置,可能会影响其他 case。
Problematic code:
sql """set global enable_pipeline_x_engine=true;"""Correct code:
sql """set enable_pipeline_x_engine=true;""" -
如果必须要设置 global,或者要改集群配置,可以指定 case 以 nonConcurrent 的方式运行。
-
case 中涉及时间相关的,最好固定时间,不要用类似 now() 函数这种动态值,避免过一段时间后 case 就跑不过了。
Problematic code:
sql """select count(*) from table where created < now();"""Correct code:
sql """select count(*) from table where created < '2023-11-13';""" -
case 中 streamload 后请加上 sync 一下,避免在多 FE 环境中执行不稳定。
Problematic code:
streamLoad { ... } sql """select count(*) from table """Correct code:
streamLoad { ... } sql """sync""" sql """select count(*) from table """