Master-slave diverge with PBXT and a low max_binlog_cache_size
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
PBXT |
New
|
Undecided
|
Unassigned |
Bug Description
The RQG command below reports that the master and the slave have diverged while the slave error log contains no mention of any replication issues. Same test passes with InnoDB and with MyISAM/Maria the slave stops with an error, so there may be a server-side bug that affects PBXT disproportionately (by causing a silent master/slave divergence)
To reproduce, obtain the RQG from lp:randgen and run the following against maria-5.1
perl runall.pl --grammar=
This will run a single-threaded, non-concurrent test where a few tables are populated and a few DML queries are issued. It will then diff the master and the slave and report the difference. Please check the master.log file for the actual list of queries that are issued.
The workload causes the following error:
UPDATE `E` AS X SET `col_int_key` = 124 , `col_int_key` = 179 , `col_int_key` = 18 WHERE `col_int_key` <= 11 failed: 1197 Multi-statement transaction required more than 'max_binlog_ cache_size' bytes of storage; increase this mysqld variable and try again.
The MySQL manual says "If a transaction is larger than this many bytes, it fails and rolls back". However, it seems that this is not the case of PBXT, and an explicit ROLLBACK is required after such an error in order to bring things back into shape. So this bug is a manifestation of LP bug#662714