sqle icon indicating copy to clipboard operation
sqle copied to clipboard

审核特定内容时审核界面会卡死

Open HuangWeiCen opened this issue 2 years ago • 1 comments

SQLe Version 1.2205.0

Describe the bug 下方那条 "SQL" 在进行审核时审核按钮会一直卡死在转圈圈状态

CREATE
    [DEFINER = { user | CURRENT_USER }]
 PROCEDURE sp_name ([proc_parameter[,...]])
    [characteristic ...] routine_body

proc_parameter:
    [ IN | OUT | INOUT ] param_name type

characteristic:
    COMMENT 'string'
  | LANGUAGE SQL
  | [NOT] DETERMINISTIC
  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  | SQL SECURITY { DEFINER | INVOKER }

routine_body:
  Valid SQL routine statement

[begin_label:] BEGIN
  [statement_list]
    ……
END [end_label]

To Reproduce 审核规则全开, 审核此SQL会卡死, image

Expected behavior 报错或者随便什么,只要不卡死就行

HuangWeiCen avatar May 31 '22 06:05 HuangWeiCen

为什么会卡死?

解析器将此条 sql 解析为语法树时,pingcap 解析库进入死循环,导致卡死。

sqle 调用解析库代码 https://github.com/actiontech/sqle/blob/ebb8bd1e2effa5c51b3bb34dd90005942ecb5306/sqle/driver/mysql/util/parser_helper.go#L22

解析库陷入死循环代码 https://github.com/sjjian/parser/blob/9bc0b6c501688b319a7e5665e873b72cccc3fd6c/perfect_parser.go#L46

taolx0 avatar Jun 29 '22 05:06 taolx0

1.2210.0 版本已无法复现该问题

sjjian avatar Nov 02 '22 03:11 sjjian

测试确认新版本无问题即可

sjjian avatar Nov 02 '22 03:11 sjjian

验证版本 UI Version: main e6c1ebf Server Version: main-ee fdad3476ba 验证步骤 使用上述出现问题的sql语句在工单内进行审核,发现并没有出现卡住的现象 image

Marcus9530 avatar Dec 01 '22 07:12 Marcus9530