pt-archiver dies with "MySQL server has gone away" when innodb_kill_idle_transaction set to low value and bulk insert/delete process takes too long time
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Toolkit moved to https://jira.percona.com/projects/PT |
Fix Released
|
Medium
|
Frank Cizmich |
Bug Description
If innodb_
How to repeat:
1. Modify pt-archiver as follow:
--- /home/sveta/
+++ pt-archiver 2015-05-07 23:49:23.583956700 +0300
@@ -6198,6 +6198,7 @@
if ( $get_sth->{Active} ) { # Fetch until exhausted
$row = $get_sth-
}
+ sleep(1);
if ( !$row ) {
PTDEBUG && _d('No more rows in this chunk; doing bulk operations');
This way we imitate long running INSERT
2. Start MySQL server (cd mysql-test; ./mtr --start innodb &)
3.
USE test
CREATE TABLE user LIKE mysql.user;
ALTER TABLE user DROP PRIMARY KEY;
ALTER TABLE user ENGINE=InnoDB;
INSERT INTO user SELECT * FROM mysql.user;
INSERT INTO user SELECT * FROM user;
INSERT INTO user SELECT * FROM user;
INSERT INTO user SELECT * FROM user;
...
repeat until you have, say, 10000 rows.
ALTER TABLE user ADD id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
CREATE TABLE user_copy LIKE user;
4. Run pt-archiver:
~/Downloads/
TIME ELAPSED COUNT
2015-05-07T23:40:16 0 0
2015-05-07T23:43:39 202 200
DBD::mysql::db commit failed: MySQL server has gone away at /home/sveta/
Suggested fix: don't allow connection to sleep for long time, run dummy queries or implement similar solutions.
Changed in percona-toolkit: | |
status: | New → Confirmed |
tags: | added: i59430 |
Changed in percona-toolkit: | |
assignee: | nobody → Frank Cizmich (frank-cizmich) |
importance: | Undecided → Medium |
status: | Confirmed → Fix Committed |
milestone: | none → 2.3.1 |
Changed in percona-toolkit: | |
milestone: | 2.3.1 → 2.2.16 |
Changed in percona-toolkit: | |
status: | Fix Committed → Fix Released |
Version 2.2.14