sqle
sqle copied to clipboard
审核特定内容时审核界面会卡死
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会卡死,
Expected behavior 报错或者随便什么,只要不卡死就行
为什么会卡死?
解析器将此条 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
1.2210.0 版本已无法复现该问题
测试确认新版本无问题即可
验证版本
UI Version: main e6c1ebf
Server Version: main-ee fdad3476ba
验证步骤
使用上述出现问题的sql语句在工单内进行审核,发现并没有出现卡住的现象