Mysql replication breaks with RAND() data
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack DBaaS (Trove) |
Fix Released
|
High
|
Doug Shelley | ||
Mitaka |
New
|
Undecided
|
Unassigned |
Bug Description
There appears to be an issue insert data using the RAND() function into a table on the master node.
To reproduce:
1. Create a 2 node replication network for Mysql 5.6 (i.e. trove create the master and then trove create --replica_of the slave)
2. create a table on the master:
> create table test1(col1 float)
3. add data
> insert into test1 select rand()
The table will have replicated to the slave but not the one row of data. Do this on slave:
SHOW SLAVE STATUS
You will see this:
Error executing row event: 'Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.'
The issue is that we aren't explicitly setting the binlog_format on the slave to "MIXED". It is defaulting to "STATEMENT".
It is likely the same issue is happening for Percona and MariaDB.
Changed in trove: | |
assignee: | nobody → Doug Shelley (0-doug) |
milestone: | none → ongoing |
Changed in trove: | |
importance: | Undecided → High |
Changed in trove: | |
milestone: | ongoing → newton-1 |
tags: | added: liberty-rc-potential |
tags: |
added: mitaka-rc-potential removed: liberty-rc-potential |
Changed in trove: | |
assignee: | Doug Shelley (0-doug) → Amrith (amrith) |
tags: | removed: mitaka-rc-potential |
no longer affects: | trove/newton |
Changed in trove: | |
assignee: | Amrith (amrith) → Doug Shelley (0-doug) |
Fix proposed to branch: master /review. openstack. org/300253
Review: https:/