# pt-table-checksum "Deep recursion..." error

**URL:** <https://forums.percona.com/t/pt-table-checksum-deep-recursion-error/2599>\
**Category:** Percona Toolkit\
**Created:** [December 12, 2012, 10:28am UTC](https://forums.percona.com/t/pt-table-checksum-deep-recursion-error/2599 "2012-12-12T10:28:05Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![adamp\_oh](https://avatars.discourse-cdn.com/v4/letter/a/e19b73/32.png) [@adamp\_oh](https://forums.percona.com/u/adamp_oh)\
**Post date:** [December 12, 2012, 10:28am UTC](https://forums.percona.com/t/pt-table-checksum-deep-recursion-error/2599/1 "2012-12-12T10:28:05Z")

</div>

I am trying to run the latest pt-table-checksum on a MySQL 5.0.67 server (Cent 5.5) and I receive the following error:

Deep recursion on subroutine “SchemaIterator::\_iterate\_dbh” at /usr/bin/pt-table-checksum line 6927.

I am using pt-table-checksum as follows:

pt-table-checksum h=localhost,u=user,p=password --no-check-replication-filters --lock-wait-time=120 --recursion-method=dsn=D=percona,t=dsns --tables database.table

I’m not sure what to do. Google didn’t really help me on this one.

---

<div class="post-metadata">

**Author:** ![niljoshi](https://sea1.discourse-cdn.com/flex019/user_avatar/forums.percona.com/niljoshi/32/16889_2.png) [@niljoshi](https://forums.percona.com/u/niljoshi)\
**Post date:** [December 18, 2012, 3:04am UTC](https://forums.percona.com/t/pt-table-checksum-deep-recursion-error/2599/2 "2012-12-18T03:04:16Z")

</div>

Hi,

I’ve tested it locally but I’m not getting above error. As per your commandline, I’m assuming that you want to compare your master server with specific slave (you must have more slaves with one master). Have you created dsns table on percona DB and add DSN entry in that table? If not, then can you do it first?

i.e

CREATE TABLE `dsns` ( `id` int(11) NOT NULL AUTO\_INCREMENT, `parent_id` int(11) DEFAULT NULL, `dsn` varchar(255) NOT NULL, PRIMARY KEY (`id`));INSERT INTO dsns (dsn) VALUES (“-h127.0.0.1,u=user,p=pass,P=port”); – here details should be of slave which you want to compare.

You can get more information here

[http://www.percona.com/doc/percona-toolkit/2.1/pt-table-chec](http://www.percona.com/doc/percona-toolkit/2.1/pt-table-chec) ksum.html#cmdoption-pt-table-checksum–recursion-method  
And then try again to run above command for checksum.

Regards,

---

<div class="post-metadata">

**Author:** ![adamp\_oh](https://avatars.discourse-cdn.com/v4/letter/a/e19b73/32.png) [@adamp\_oh](https://forums.percona.com/u/adamp_oh)\
**Post date:** [December 18, 2012, 9:28am UTC](https://forums.percona.com/t/pt-table-checksum-deep-recursion-error/2599/3 "2012-12-18T09:28:58Z")

</div>

I did that part, although I only add the host and port since I have some slaves on non-standard ports. I didn’t add an entry with username and password, or entries for slaves with a standard port.

---

<div class="post-metadata">

**Author:** ![badaldudy](https://avatars.discourse-cdn.com/v4/letter/b/bb73d2/32.png) [@badaldudy](https://forums.percona.com/u/badaldudy)\
**Post date:** [October 17, 2016, 8:07am UTC](https://forums.percona.com/t/pt-table-checksum-deep-recursion-error/2599/4 "2016-10-17T08:07:43Z")

</div>

[QUOTE=niljoshi;9606]  
Hi,

hi i want to modify one column in the table and i alos want to use --recursion-method/ --check-slave-lag i want to monitor the lag between two network how can i do this

These are my commands:-

pt-online-schema-change --p=123456 --execute --check-slave-lag=10s h=abc.slave , P=3306 --print --alter “MODIFY COLUMN abc varchar(7) NOT NULL DEFAULT ‘money’” D=archives,t=abc\_details\_xyz;

pt-online-schema-change --p=123456 --execute --recursion-method=dsn=D=percona,t=dsns --print --alter “MODIFY COLUMN abc varchar(7) NOT NULL DEFAULT ‘money’” D=archives,t=abc\_details\_xyz;

These two are my errors:–

DBD::mysql::db selectcol\_arrayref failed: Unknown column ‘dsn’ in ‘field list’ [for Statement “SELECT dsn FROM `archives`.`abc_details_xyz` ORDER BY id”] at /usr/bin/pt-online-schema-change line 4764

Usage: pt-online-schema-change [OPTIONS] DSN

Errors in command-line arguments:

- Specify only one DSN on the command line
- The DSN must specify a database (D) and a table (t)

pt-online-schema-change alters a table’s structure without blocking reads or  
writes. Specify the database and table in the DSN. Do not use this tool before  
reading its documentation and checking your backups carefully. For more  
details, please use the --help option, or try ‘perldoc  
/usr/bin/pt-online-schema-change’ for complete documentation.

Please help on this topic you can contact me on [badal.singh&#64;cozygames.com](mailto:badal.singh&#64;cozygames.com)
