bk-job
bk-job copied to clipboard
bugfix: 作业平台执行MySQL脚本时模板脚本匹配异常导致脚本失败的缺陷
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?) 端口匹配应为精确匹配, 无论是否开启类似端口, 作业平台都应正常工作
已确认,确实是bug