bk-job icon indicating copy to clipboard operation
bk-job copied to clipboard

bugfix: 作业平台执行MySQL脚本时模板脚本匹配异常导致脚本失败的缺陷

Open Weiney opened this issue 2 years ago • 1 comments

Version / Branch / tag

3.6.0.X

出了什么问题?(What Happened?) 在蓝鲸作业平台执行MySQL脚本的时候, 蓝鲸会通过内置的MySQL template脚本来执行用户上传的脚本。

脚本内有一个端口匹配的逻辑, 根据用户在作业平台传入的账号端口号去拼接MySQL的连接地址

跳转至问题代码

netstat -ntl | grep ${PORT} | awk '{print $4}'

因为grep为模糊匹配, 忽略了存在类似端口开启的可能, 例如MySQL的3306, 脚本还可以grep到33060,43306......, 导致最后拼接的MySQL连接地址异常, 从而导致脚本执行失败。

如何复现?(How to reproduce?)

执行环境: Ubuntu18.04、 MySQL 5.7 启动MySQL服务,端口3306, 启动影响端口 33060

在两端口同时启动时, Job平台无法正常执行SQL, 因为拼接的MySQL连接地址有误 如果只开启3306端口的话, 则无任何影响

预期结果(What you expect?) 端口匹配应为精确匹配, 无论是否开启类似端口, 作业平台都应正常工作

Weiney avatar Aug 02 '22 08:08 Weiney

已确认,确实是bug

wangyu096 avatar Aug 03 '22 02:08 wangyu096