欢迎来到MySQL QA系列的第10集!今天我们将讨论复制和简化:如何做到正确。
请注意,除非你是一名QA工程师,被一个遥控器所困,并且还有难以重现或难以减少的bug,否则这一集对你来说基本上是无趣的。
然而,如果你看过第7集(可能还有第8和第9集),你可能会喜欢看到的是,reducer如何自动生成方便的启动/停止/客户端(cl)等脚本,所有这些脚本都打包到一个方便的bug tarball中,结合简化的SQL测试用例。
这部分内容在介绍之后(结束于11:17),以及视频末尾的一个示例(开始于时间索引30:35)。
“中间部分”(11:17到30:35)是关于复制和简化的,除非你在处理一个远程案例,否则大多数人可能会跳过;请记住,85% -95%的错误很容易复制和减少——对于这一点,第7集,第8集(特别是FORCE_SKIPV/FORCE_SPORADIC部分),以及本集与脚本相关的部分(从开始到11:17,从30:35到结束)就足够了。
如上所述,本视频中涉及的主题是:
1.雷竞技下载官网percona-qa / reproducing_and_simplification.txt
2.自动生成脚本(由Reducer生成)
=========示例错误摘录复制/粘贴-根据视频
尽管上面的测试用例应该足以重现错误,但附带的tarball给出了与我们的系统完全匹配的测试用例,包括一些方便的实用程序
$ vi {epoch}_mybase #在这个文件中更新基本路径(唯一需要更改的!)
$ ./{epoch}_init #初始化数据目录
$ ./{epoch}_start #启动mysqld (MYEXRA -option)
$ ./{epoch}_stop #停止mysqld
$ ./{epoch}_cl #查看mysqld是否up
$ ./{epoch}_run #使用mysql命令行运行testcase(产生输出)
$ ./{epoch}_run_pquery #使用pquery运行testcase(产生输出)
$ vi /dev/shm/{epoch}/error.log。验证错误日志
$ ./{epoch}_gdb #将您带到gdb提示符
$ ./{epoch}_parse_core #创建{epoch}_STD。gdb和{epoch}_FULL.gdb;标准和全var GDB堆栈跟踪
建议使用720p分辨率全屏观看







你可以在这里查看完整系列:https://www.雷竞技下载官网percona.com/blog/2015/03/17/free-mysql-qa-and-bash-linux-雷竞技公司电话training-series
再次感谢您的详细解释。所以我们应该采取的繁殖步骤是:
1.14 xxx_init
2.14 xxx_start
3.14xxx_cl ->用于检查它是否正常
4.14xxx_run或(run_pquery)
5.14 xxx_gdb
6.14 xxx_parse_core
所以14xxx_run.sh只是运行生成的SQL文件作为输入文件使用mysql客户端:
${MYBASE}/bin/mysql -uroot -binary-mode -force -S/dev/shm/1440150447/socket。Sock是二进制文件]
它调用pquery-run.sh并分配1440150447。sql作为INFILE?(INFILE = $ {SCRIPT_PWD} / pquery / 5.7.7.sql)
@Shahriyar _run和_run_pquery分别调用mysql客户端和pquery客户端,并将INFILE传递给它们。Pquery-run.sh本身用于整个运行,而这些脚本是由reducer生成的,每次试验(即由Pquery-run.sh /pquery-prep-red.sh创建的试验)。
@所有,请注意我们已经将percona-qa移动到GitHub:雷竞技下载官网
https://github.com/雷竞技下载官网Percona-QA/percona-qa
要克隆它,使用:
yum安装git
$ CD ~
$ git克隆https://github.com/雷竞技下载官网Percona-QA/percona-qa.git
Reducer.sh也被直接放到了这个存储库中(它被维护在那里),所以*不*需要再单独获取lp:randgen。