mirror of
https://github.com/MariaDB/server.git
synced 2026-02-17 16:18:42 +01:00
System versioned table UPDATES would fail to replicate on debug builds with the debug assertion: rpl_utility_server.cc:1058: bool RPL_TABLE_LIST::give_compatibility_error(rpl_group_info *, uint): Assertion `m_tabledef.master_column_name[col]' failed. Though caught with system versioned tables, the problem is generalizable to any transactions which have multiple Rows_log_events that update the same table. That is, during the error reporting for columns which were present in the Rows_log_event but not on the slave table, there is a debug assertion that validates that the master's table name exists. After reporting this error, the pointer to that master table name is nullified. This means that future Rows_log_events would not have this table name, and the assertion would fail (release builds would likely segfault when logging the error). The fix for this is not to nullify the pointer after reporting the error, so future Rows_log_events can continue using the pointer to the master's table name. |
||
|---|---|---|
| .. | ||
| extension | ||
| include | ||
| r | ||
| t | ||
| disabled.def | ||
| my.cnf | ||
| README | ||
| rpl_1slave_base.cnf | ||
How to run. =========== ./mysql-test-run.pl --suite=rpl --mysqld=--binlog-format=mixed