pt-table-checksum ignores its default and explicit --recursion-method
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Toolkit moved to https://jira.percona.com/projects/PT |
Fix Released
|
Medium
|
Brian Fraser |
Bug Description
Here is the invocation:
./pt-table-checksum --ask-pass --lock-
The servers are 5.0 (5.0.84sp1-
The master's slaves are discovered properly, but when it tries to discover the slaves of the first found slave, it attempts to run SHOW SLAVE HOSTS (some output edited to remove user names and IP addresses):
# MasterSlave:2559 8866 Looking for slaves on h=localhost,
# MasterSlave:2566 8866 Finding slaves with _find_slaves_
# VersionParser:1677 8866 5.0.84sp1-
# VersionParser:1677 8866 4.1.2 parses to 004001002
# VersionParser:1688 8866 005000084 ge 4.1.2 : 1
# MasterSlave:2633 8866 DBI::db=
# MasterSlave:2663 8866 DBI::db=
# DSNParser:78 8866 Parsing h=<Slave84>
# DSNParser:96 8866 Finding value for S
# DSNParser:106 8866 Copying value for S from defaults
# DSNParser:96 8866 Finding value for F
# DSNParser:106 8866 Copying value for F from defaults
# DSNParser:96 8866 Finding value for A
# DSNParser:106 8866 Copying value for A from defaults
# DSNParser:96 8866 Finding value for P
# DSNParser:106 8866 Copying value for P from defaults
# DSNParser:96 8866 Finding value for p
# DSNParser:102 8866 Copying value for p from previous DSN
# DSNParser:96 8866 Finding value for u
# DSNParser:102 8866 Copying value for u from previous DSN
# DSNParser:96 8866 Finding value for h
# DSNParser:96 8866 Finding value for D
# DSNParser:106 8866 Copying value for D from defaults
# DSNParser:96 8866 Finding value for t
...
(more output supressed)
...
# MasterSlave:2571 8866 Found 6 slaves
# MasterSlave:2537 8866 Recursing from h=localhost,
...
(more output supressed)
...
# MasterSlave:2559 8866 Looking for slaves on h=<Slave84>
# MasterSlave:2566 8866 Finding slaves with _find_slaves_
# VersionParser:1677 8866 5.0.84sp1-
# VersionParser:1677 8866 4.1.2 parses to 004001002
# VersionParser:1688 8866 005000084 ge 4.1.2 : 1
# MasterSlave:2633 8866 DBI::db=
# MasterSlave:2663 8866 DBI::db=
# MasterSlave:2566 8866 Finding slaves with _find_slaves_
# MasterSlave:2600 8866 DBI::db=
DBD::mysql::db selectall_arrayref failed: Access denied; you need the REPLICATION SLAVE privilege for this operation [for Statement "SHOW SLAVE HOSTS"] at ./pt-table-checksum line 2601, <STDIN> line 1.
Related branches
- Daniel Nichter: Approve
-
Diff: 2941 lines (+985/-554)12 files modifiedbin/pt-archiver (+76/-41)
bin/pt-heartbeat (+99/-54)
bin/pt-kill (+79/-44)
bin/pt-online-schema-change (+100/-54)
bin/pt-query-digest (+76/-41)
bin/pt-slave-find (+97/-56)
bin/pt-slave-restart (+97/-56)
bin/pt-table-checksum (+102/-57)
bin/pt-table-sync (+94/-56)
lib/MasterSlave.pm (+80/-44)
t/lib/MasterSlave.t (+71/-49)
t/pt-table-checksum/option_sanity.t (+14/-2)
- Daniel Nichter: Approve
-
Diff: 51 lines (+4/-4)4 files modifiedt/lib/Processlist.t (+1/-1)
t/lib/TableSyncChunk.t (+1/-1)
t/lib/TableSyncNibble.t (+1/-1)
t/lib/TableSyncer.t (+1/-1)
tags: | added: percona-22055 pt-table-checksum slave-recursion |
Changed in percona-toolkit: | |
status: | New → Triaged |
summary: |
- pt-table-checksum uses SHOW SLAVE HOSTS to discover slaves of slaves, - even when --recursion-method is left at its default of processlist + pt-table-checksum ignores its default and explicit --recursion-method |
Changed in percona-toolkit: | |
assignee: | nobody → Brian Fraser (fraserbn) |
importance: | Undecided → Medium |
Changed in percona-toolkit: | |
milestone: | none → 2.1.3 |
Changed in percona-toolkit: | |
status: | Triaged → In Progress |
Changed in percona-toolkit: | |
status: | In Progress → Fix Committed |
Changed in percona-toolkit: | |
status: | Fix Committed → Fix Released |
The same things happen if --recursion- method= processlist is set explicitly.