The pt-upgrade test suite breaks replication on the test environment, causing subsequent tests to fail. This affects at least MySQL 5.5.20. After running the tests, we have:
12345
12346
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
12347
Slave_IO_Running: Yes
Slave_SQL_Running: No
The errors in the server's log:
120225 10:11:04 [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them. Statement: INSERT INTO film VALUES (1,'ACADEMY DINOSAUR','A Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies',2006,1,NULL,6,'0.99',86,'20.99','PG','Deleted Scenes,Behind the Scenes','2006-02-15 05:03:42'),(2,'ACE GOLDFINGER','A Astounding Epistle of a Database Administrator And a Explorer who must Find a Car in Ancient China',2006,1,NULL,3,'4.99',48,'12.99','G','Trailers,Deleted Scenes','2006-02-15 05:03:42'),(3,'ADAPTATION HOLES','A Astounding Reflection of a Lumberjack And a Car who must Sink a Lumberjack in A Baloon Factory',2006,1,NULL,7,'2.99',50,'18.99','NC-17','Trailers,Deleted Scenes','2006-02-15 05:03:42'),(4,'AFFAIR PREJUDICE','A Fanciful Documentary of a Frisbee And a Lumberjack who must Chase a Monkey in A Shark Tank',2006,1,NULL,5,'2.99',117
120225 10:15:00 [ERROR] Slave SQL: Error 'Table 't' already exists' on query. Default database: 'test'. Query: 'CREATE TABLE `t` (
`id` int(10) NOT NULL,
`name` varchar(255) default NULL,
`last_login` datetime default NULL,
PRIMARY KEY (`id`)
)', Error_code: 1050
Interestingly, if I "prove" t/pt-upgrade, all tests pass, and the replication breaks.
If I "perl" each .t file one at a time, basics.t has 3 failures, beginning with "Can't create database 'test'; database exists"
All other tests pass OK when run with "perl".