Bug #43468 modified_non_trans_table is not set in replicated stmt/trans
Submitted: 6 Mar 2009 22:39
Reporter: Andrei Elkin Email Updates:
Status: In progress Impact on me:
None 
Category:MySQL Server: Row Based Replication ( RBR ) Severity:S3 (Non-critical)
Version:5.1+ OS:Any
Assigned to: Assigned Account CPU Architecture:Any

[6 Mar 2009 22:39] Andrei Elkin
Description:
At applying row-based events comprising a mixed engine transaction
there is no warning that the user can get if the transaction modifies
a non-transaction table and gets rolled back.
In that case if the user restarts applying by slave sql thread, he can
get all sort of errors due to re-applying events on the
non-transaction table.

The bug fixes need to provide both: the warning to the user and the
internal mechanisms to notify that a non-transaction table has been
modified during execution of a group of row-based events.

How to repeat:
1. Try to roll back a replicated transction that manages to modify a
   non-trans table on the slave before the rollback and see no warning 
   when replication gets stopped.

2.  Look at the source code and see that on the query level there are
    flags denoting if a non-trans table was involved during
    transaction,
    but the flags don't exist on the row-based replication applying
    level.