• Kristian Nielsen's avatar
    MDEV-10356: rpl.rpl_parallel_temptable failure due to incorrect commit optimization of temptables · e937a64d
    Kristian Nielsen authored
    The problem was that parallel replication of temporary tables using
    statement-based binlogging could overlap the COMMIT in one thread with a DML
    or DROP TEMPORARY TABLE in another thread using the same temporary table.
    Temporary tables are not safe for concurrent access, so this caused
    reference to freed memory and possibly other nastiness.
    
    The fix is to disable the optimisation with overlapping commits of one
    transaction with the start of a later transaction, when temporary tables are
    in use. Then the following event groups will be blocked from starting until
    the one using temporary tables is completed.
    
    This also fixes occasional test failures of rpl.rpl_parallel_temptable seen
    in Buildbot.
    Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
    e937a64d
sql_class.h 230 KB