iwanghc

Results 24 issues of iwanghc

**SQLe Version** main-ee 5da439b28d06a6d75ce8dc9cb02192f0d11732b2 **Describe the bug** 使用sqle审核时,使用mysql语句where in中含有子查询的sql时后台出现panic (当in中子句表作为驱动表时) **To Reproduce** 表结构: ![image](https://github.com/actiontech/sqle/assets/83113746/8b02eb57-c85f-4fb0-9b68-66d9ce768a19) 1、创建工单 2、输入选择数据库sql并输入sql语句SELECT * FROM fruits WHERE name IN ( SELECT md5 (c) FROM t16 ); 3、点击审核...

bug

## 关联的 issue https://github.com/actiontech/sqle-ee/issues/1460 ## 描述你的变更 赋值重写规则知识库 ## 确认项(pr提交后操作) > [!TIP] > 请在指定**复审人**之前,确认并完成以下事项,完成后✅ ---------------------------------------------------------------------- - [x] 我已完成自测 - [x] 我已在关联的issue里补充了实现方案 - [x] 我已在关联的issue里补充了测试影响面 - [x] 我已确认了变更的兼容性,如果不兼容则在issue里标记 `not_compatible` - [x] 我已确认了是否要更新文档,如果要更新则在issue里标记...

## 关联的 issue https://github.com/actiontech/sqle/issues/2348 ## 描述你的变更 sqle启动插件逻辑,新增记录插件pid文件,kill残留插件进程逻辑 ## 确认项(pr提交后操作) > [!TIP] > 请在指定**复审人**之前,确认并完成以下事项,完成后✅ ---------------------------------------------------------------------- - [x] 我已完成自测 - [x] 我已在关联的issue里补充了实现方案 - [x] 我已在关联的issue里补充了测试影响面 - [x] 我已确认了变更的兼容性,如果不兼容则在issue里标记 `not_compatible` - [x] 我已确认了是否要更新文档,如果要更新则在issue里标记...

## 版本信息(Version) sqle 3.2404 ## 问题描述(Describe) 新增sql优化规则以后,部分规则没有审核能力,需要在审核时过滤掉这部分规则 注: sql优化规则没有实现方法 目前mysql在审核时过滤了没有方法的规则,所以目前没有影响,但是其他插件审核不可控,所以需执行审核时就过滤掉没有审核能力的规则。 ## 实现方案 ## 变更影响面 #### 受影响的模块或功能 #### 外部引用的潜在问题或风险 #### 版本兼容性 #### 测试建议

suggestion

## 版本信息(Version) SQLE:main ee 815ad05f8 DMS:main ee a8a69c2 UI:main ee 36559656 ## 问题描述(Describe) sqle进程异常终止或强制退出后(如kill -9),sqle会自动重新拉起,此时会重新启动插件进程,但是老的插件进程不会被关闭,消耗资源。 ## 如何复现(To Reproduce) 1、启动sqle,此时有pg的插件进程正在运行 ![image](https://github.com/actiontech/sqle-ee/assets/83113746/4fe52687-2b5e-45f1-980a-06be6e0a22c4) 2、kill -9 强制退出sqle ![image](https://github.com/actiontech/sqle-ee/assets/83113746/80270780-7004-4acb-9a36-c2c90ac40969) 3、待sqle重新拉起后发现pg有两个进程存在 ![image](https://github.com/actiontech/sqle-ee/assets/83113746/82ae55e6-39da-4ca9-8065-d29da005800d) ## 实现方案 **方案一**:【sqle启动时kill插件进程】sqle启动插件时,通过插件名称判断当前插件是否已有进程存在,若有则kill **方案二**:【由sqle管理插件进程,sqle创建插件进程pid文件】当sqle启动插件时,判断插件pid文件内容,若不为空则发送退出进程信号。...

bug

关联原始issue:https://github.com/actiontech/sqle/issues/2348 ## 版本信息(Version) SQL:main 7e278a11b8c8bc02139de31fa9fe6e5d17d392d4 ## 问题描述(Describe) Ubuntu系统下,sqle使用java插件,当sqle异常退出后插件仍然残留,问题现象是在Ubuntu下sh -c启动java插件会有一个sh -c java -jar进程和插件本身两个进程存在(shll进程为sqle的子进程,java插件进程为shell的子进程),sqle在记录pid文件仅记录了shll进程,导致清理时仅清理了shll进程。 go插件和在Centos系统未出现此问题 ## 截图或日志(Log) ![image](https://github.com/actiontech/sqle/assets/83113746/01a46fa0-0d32-4fc3-8fec-67ce1d9e7e5c) ![image](https://github.com/actiontech/sqle/assets/83113746/686bdb86-5178-4016-a7c7-b17865f4ad16) ## 如何复现(To Reproduce) 复现:添加java插件->启动sqle->模拟异常退出(kill -9)->重新启动sqle->查看插件进程信息 结果:存在残留的java插件进程 ## 实现方案 问题原因: Ubuntu和Centso默认使用了两种不同的shell,Ubuntu使用的是dash、而centos使用的是bash,dash启动的时候会产生一个单独的进程而bash不会 证: Ubuntu: ![image](https://github.com/actiontech/sqle/assets/83113746/6f1a1a79-f9f3-448b-9060-9494acb98c3d)...

bug

## 版本信息(Version) SQLE:main 3f884f0 DMS:main e1bd3f7 ## 问题描述(Describe) 语法错误的提示默认是warn级别,当创建工单的最高触发规则级别设置为error时,在有语法错误时也能创建工单。这会导致在上线阶段报错时才发现有语法错误, 主要解决不能灵活配置错误等级问题 ## 截图或日志(Log) ![image](https://github.com/actiontech/sqle/assets/83113746/8480f674-0ce8-4894-853e-19dcea5f8896) ## 如何复现(To Reproduce) 创建工单的最高触发规则级别设置为error,有语法错误时也能创建工单 ## 实现方案 **现状:** 审核预检查是否无法解析sql,触发后结果写死为(Warn, "", "语法错误或者解析器不支持,请人工确认SQL正确性") 并且没有rule_name,由于扩展插件对于无法解析sql处理的不确定性,导致无法统一处理或配置该结果的告警级别。 **解决方案:** 将“语法错误或者解析器不支持”作为一条全局配置的规则,并新增规则配置,记录是否开启语法错误检查和语法错误检查规则等级。预检查语法错误中判断改规则启用状态,并处理结果。 该规则所属于全局配置、告警级别默认为error ## 变更影响面 ####...

suggestion
not_compatible

## 关联的 issue https://github.com/actiontech/sqle/issues/2460 ## 描述你的变更 新增“语法错误或者解析器不支持”规则 预检查中处理sql解析失败的结果,获取规则配置的等级 单元测试修改 ## 确认项(pr提交后操作) > [!TIP] > 请在指定**复审人**之前,确认并完成以下事项,完成后✅ ---------------------------------------------------------------------- - [x] 我已完成自测 - [x] 我已在关联的issue里补充了实现方案 - [x] 我已在关联的issue里补充了测试影响面 - [x] 我已确认了变更的兼容性,如果不兼容则在issue里标记 `not_compatible` -...

## 关联的 issue https://github.com/actiontech/sqle/issues/2561 ## 描述你的变更 1、sql管控接口定义调整及实现定义 2、修改sql manage的来源为智能扫描的source_id存为实例任务id 3、补充sql manage 与 sql audit的关联关系 ## 确认项(pr提交后操作) > [!TIP] > 请在指定**复审人**之前,确认并完成以下事项,完成后✅ ---------------------------------------------------------------------- - [x] 我已完成自测 - [x] 我已在关联的issue里补充了实现方案 - [x] 我已在关联的issue里补充了测试影响面...

## 需求描述(Describe) 快捷审核中打标签的sql同步到sql管控中 ## 实现方案 1、快捷审核打标签的sql同步至sql管控中。 2、调整sql管控model,预期希望管控的表不需要关联来源表。 3、修改智能扫描model中的sql语句,补充sql_manage_records与sql_audit_plans_v2的关联关系(类型与来源) 4、调整来源为智能扫描任务的sql_manage_records表source_id为instance_audit_plan_id(跳转概览界面需要instance_audit_plan_id) ## 变更影响面 #### 受影响的模块或功能 sql管控 智能扫描 快捷审核 #### 外部引用的潜在问题或风险 无 #### 版本兼容性 不兼容 1、sql_manage_records表source_id字段类型由bigint调整为string。 2、sql_manage_records表source_id来源为智能扫描的改为实例任务id,且对应的sql_id也要同步更新。 #### 测试建议 快捷审核同步至sql管控与sql语句的合并 合并的sql跳转快捷审核,列表形式展示

suggestion