• sjaakola's avatar
    MDEV-21153 Replica nodes crash due to indexed virtual columns and FK cascading delete · 9377e9ba
    sjaakola authored
    Fix for MDEV-23033 fixes a problem in replication applying of transactions, which contain cascading foreign key delete for a table, which has indexed virtual column.
    This fix adds slave_fk_event_map flag for table, to mark when the prelocking is needed for applying of a transaction.
    See commit 608b0ee5 for more details.
    However, this fix is targeted for async replication only, Rows_log_event::do_apply_event() has condition to rule out galera replication from the fix domain, and use cases suffering from MDEV-23033 and related MDEV-21153 will fail in galera cluster.
    
    The fix in this commit removes the condition to rule out the setting of slave_fk_event_map flag from galera replication, and makes the fix in MDEV-23033 effective for galera replication as well.
    
    However, the above fix has caused regressions for some galera_sr suite tests, which run tests for streaming replication.
    This regression can be observed e.g. by: /mtr galera_sr.galera_sr_multirow_rollback  --mysqld=--slave_run_triggers_for_rbr=yes
    These galera_sr suite tests were failing in last phase of replication applying, where actual transaction is already applied, and streaming replication related meta data needs to be updated in wsrep system tables.
    Opening the wsrep system tables failed for corrupt data in THD::lex:query_tables_list. The fix in this commit uses back query table list for the duration of fragment update operation.
    
    Finally, a mtr test for virtual column support has been added. galera.galera_virtual_column.test has as first test a scenario from MDEV-21153
    
    new fix
    Reviewed-by: default avatarJan Lindström <jan.lindstrom@mariadb.com>
    9377e9ba
wsrep_schema.cc 41.2 KB