[MDEV-16710] Slave SQL: Could not execute Update_rows_v1 event with RocksDB and triggers Created: 2018-07-08 Updated: 2024-01-22 |
|
| Status: | Open |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - RocksDB, Triggers |
| Affects Version/s: | 10.2, 10.3 |
| Fix Version/s: | 10.4 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Sergei Petrunia |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
Note: Run with --mysqld=--plugin-load-add=ha_rocksdb. Parallel replication and optimistic mode don't make any difference, reproducible with and without them.
Also reproducible on bb-10.2-mdev16428 af1568668. |
| Comments |
| Comment by Sergei Petrunia [ 2018-07-12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
I have added a SHOW BINLOG EVENTS command after the COMMIT in the test, and ran it with MyRocks and InnoDB:
InnoDB:
| ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2018-07-12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Looking at the GTID 0-1-5:
MyRocks' binlog looks odd:
Why do we have REPLACE command after we've ran DELETE FROM t1? | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2018-07-12 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
The issue seems to be on the master, MyRocks has incorrect transactional semantics when statements within a transaction fail with errors:
The last SELECT should produce empty result. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2018-07-13 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
Affects upstream too, filed as https://github.com/facebook/mysql-5.6/issues/857 | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Comment by Sergei Petrunia [ 2018-07-13 ] | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
The patch for this is pushed into bb-10.2-mdev16428 tree. |