【bug】发现pt-table-checksum bug一例

发现pt-table-checksum bug例子



一.起因
由于全公司在组织学习MySQL。正在学到MySQL安装、 复制这一块,我的霸道总裁突然霸气十足的问我 ‘’你如何检测主从不一致呢‘’,我回答说 当然是
pt-table-checksum
,从而引出了下文.
二.描述
MySQL5.7 主从环境
percona-toolkit-2.2.20-1.noarch
创建了一个test_xx的库
root@localhost:mysql.sock [(none)]>create database test_xx;
Query OK, 1 row affected (0.01 sec)

创建表

| aa    | CREATE TABLE `aa` (
  `id` int(11) NOT NULL,
  `name` varchar(10) DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

插入数据
"root@localhost:mysql.sock [test_xx]>insert into aa values(1,'a'),(4,'a');
从库删除数据

"root@localhost:mysql.sock  [test_xx]>delete from aa;
Query OK, 2 rows affected (0.01 sec)

执行pt语句校队

[root@localhost ~]# pt-table-checksum  --no-check-binlog-format --replicate=pt.cheksum --databases=test_xx  -h 192.168.230.132 -u aa -predhat -P 3306   --recursion-method='processlist'

我的霸道总裁就喊我了 快来给我看看 。只能放下手里的砖先,开开心心的过去。
三 排错
开始以为是我的参数问题,各种调试。霸道总裁在旁边坐着好紧张QAQ 过了10分钟 还是没搞定。 霸道总裁突然说是不是_(下划线)问题呢。 去除_(下划线)重新创建库 插入表 插入数据 从库删除数据 还是不好使。。。 淡淡的忧伤 今天果然运气不好啊。 突然机智的总裁说 是不是 数据库的名字有长度限制呢。这就给了我一丝希望 就安装霸道总裁的意思 创建库名casdfdsfsf 创建表 插入数据 从库删除数据 结果好用了 好神奇 突然感觉世界都亮了。
我的霸道总裁告诉我 会不会是 因为test或者_的原因呢。经过各种 创建库 创建表 插入数据 从库删数据 等等操作。。
结果发现 机智的霸道总裁的结论的是对的 因为有test开头。 霸道总裁有没有好机智, 是不是快爱上霸道总裁了。
然后通过阅读pt-table-checksum 的代码 发现 代码7617行

if ( $db =~ m/information_schema|performance_schema|lost\+found|percona|percona_schema|test/ ) {

在percona-toolkit-3.0.3 已经修复了

if ( $db =~ m/^(information_schema|performance_schema|lost\+found|percona_schema)$/ ) {

在/usr/bin/pt-table-checksum 中修复

   if ( $db =~ m/information_schema|performance_schema|lost\+found|percona|percona_schema/ ) {

[root@localhost ~]# pt-table-checksum  --no-check-binlog-format --replicate=pt.cheksum --databases=test_xx  -h 192.168.230.132 -u aa -predhat -P 3306   --recursion-method='processlist'
            TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE
09-08T10:48:15      0      1        2       1       0   0.044 test_xx.aa

四总结
知其然也要知其所以然,发现问题 不要方 。要养成阅读代码的习惯。

时间: 2024-10-31 11:52:29

【bug】发现pt-table-checksum bug一例的相关文章

一次DB time抖动发现的expdp的bug

最近收到一封报警邮件,提示还是DB time突然提高,时间发生在早晨的时候,想必大过节的也不会有人这么卖力工作把数据库负载弄上去. ############ DB time抖动 被平均 ZABBIX-监控系统: ------------------------------------ 报警内容: DB time is too high ------------------------------------ 报警级别: PROBLEM ------------------------------

我们在各种开源项目中发现的 10000 个 bug

为了改善我们的静态代码分析的方法论,以及改进我们的静态分析工具PVS-Studio,我们会定期地用他们验证各种各样的开源项目.我们找到了很多bug,事实证明,再牛的人也会拼写错误 / 注意力不集中,没有人能保证不犯错.即便是在Microsoft Code Contracts, Qt, Linux kernel, CryEngine, VirtualBox, LibreOffice, Firefox, Boost, Tor这些项目里,依旧如此.目前我们检测了262个项目,都是官方发布版!我们一共记

微软上线基于云端的BUG发现项目Project Springfield

对于软件的质量控制来说发现安全漏洞是非常重要的一环,诸多大型私人数据被窃事件表明加强云安全的重要性.在"云优先.移动优先"的发展策略下,微软今天宣布上线全新基于云端的BUG发现项目--Project Springfield,帮助铲除包括Windows.Office和其他产品的潜在安全漏洞. 事实上,Project Springfield已经持续开发15年时间,只不过现在将其移到云端了.公司表示在Windows 7研发过程中该项目使用"Whitebox Fuzzing"

软件测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?

问题描述: 测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug? 精彩答案: 会员 土土的豆豆: 本期问题其实主要是针对不同方面或纬度上对于bug的一个归类和定位. 个人认为,从软件开发测试生命周期上分析的话,三者从开发测试阶段应该是需求bug.设计bug.功能bug.(这里仅针对提问排比) 需求问题可以包括设计问题和功能问题,当然还有非功能性缺陷等. 需求bug,简而言之就是对于业务需求不清晰或者理解有偏差产生的问题.可能包括业务分析人员不专业因素.开发与测试人员思维不一致

MySQL · BUG分析 · Rename table 死锁分析

背景 InnoDB buffer pool中的page管理牵涉到两个链表,一个是lru链表,一个是flush 脏块链表,由于数据库的特性: 脏块的刷新,是异步操作: page存在两个版本,一个是ibd文件的持久化版本,和buffer pool内存中的当前版本. 所以在对table对象进行ddl变更的时候,要维护两个版本之间的一致性,有一些操作需要同步进行page缓存的管理.例如以下三种ddl操作: 1. flush table t for export 这是MySQL 5.6提供的InnoDB

VS 2017开发ASP.NET Core Web应用过程中发现的一个重大Bug

今天试着用VS 2017去开发一个.net core项目,想着看看.net core的开发和MVC5开发有什么区别,然后从中发现了一个VS2017的Bug. 首先,我们新建项目,ASP.NET Core Web应用程序,如图: 新建好后,我们按照习惯,在controller文件夹上面,点击鼠标右键,添加控制器...,出现了如下界面:   这个对话框什么意思呢?怎么会提示添加依赖项呢?按理来说,我们直接调试运行,项目就跑起来了!!! 先不管他,我们直接点击添加,然后稍等一会儿,等他添加依赖.完成后

我发现环信的bug,离线可以推送,在线就不推送

问题描述 测试了一下,当我从后台清除app后,可以正常接收消息,但是打开消息进入app内部后,在返回其他app时,发送消息就没有提示了..本人设计湿,所以一些开发的东西不太懂:我当时申请的是production的sandbox模式的推送,因此在申请证书的时候也是开发者.应用马上要上线了,请问是不是需要升级或者转换为production的推送,如何升级? 解决方案 在后台 做一下本地推送就可以了解决方案二:也发现了这个问题,在进入后台的时候做本地推送吧

版主来看看,貌似是论坛bug。CSDN删除消息BUG

问题描述 当有一个人"回复"了一些非法的东西.辛勤的版主们将这个信息弄没了(看不见了)可是在结贴的时候."发帖人"还可以看到被"弄没了"的信息.今天结贴的时候发现的.描述完毕.发现这个问题的帖子顺便求帮忙C#调用API移动鼠标的时候.在部分游戏窗口下无法移动,请问有什么办法解决吗?或者其他强制性的移动鼠标办法.例如神马硬件模拟 解决方案 解决方案二:引用楼主u013579633的回复: 当有一个人"回复"了一些非法的东西.辛勤

iOS 7.1.2发现日历Bug iOS 7.1.3或尽快解决

iOS 7.1.2发现日历Bug iOS 7.1.3或尽快解决苹果现在似乎对用户反馈的问题显得很积极啊.现在有国外媒体报道称,一位用户在iOS 7.1.2中发现了日历的Bug,随后他立即写邮件向苹果反馈了这个问题,让人没想到的事,苹果立刻进行了答复.在邮件中,苹果承诺该Bgu会在下一版系统更新中解决,其到来时间会非常快.iOS 8正式版到来前,诸如iOS 7.1.3这样的小更新应该会持续一段时间.

关于MySQL count(distinct) 逻辑的另一个bug

背景          上一篇博文(链接)介绍了count distinct的一个bug.解决完以后发现客户的SQL语句仍然返回错误结果(0), 再查原因,发现了另外一个bug.也就是说,这个SQL语句触发了两个bug -_-   这里只说第二个,将问题简化后复现如下,影响已知的所有版本 .   drop table if exists tb; set tmp_table_size=1024; create table tb(id int auto_increment primary key,