• unknown's avatar
    Bug#56118 STOP SLAVE does not wait till trx with CREATE TMP TABLE ends, · 211552cc
    unknown authored
              replication aborts
    
    When recieving a 'SLAVE STOP' command, slave SQL thread will roll back the
    transaction and stop immidiately if there is only transactional table updated,
    even through 'CREATE|DROP TEMPOARY TABLE' statement are in it. But These
    statements can never be rolled back. Because the temporary tables to the user
    session mapping remain until 'RESET SLAVE', Therefore it will abort SQL thread
    with an error that the table already exists or doesn't exist, when it restarts
    and executes the whole transaction again.
    
    After this patch, SQL thread always waits till the transaction ends and then stops,
    if 'CREATE|DROP TEMPOARY TABLE' statement are in it.
    
    mysql-test/extra/rpl_tests/rpl_stop_slave.test:
      Auxiliary file which is used to test this bug.
    mysql-test/suite/rpl/t/rpl_stop_slave.test:
      Test case for this bug.
    sql/slave.cc:
      Checking if OPTION_KEEP_LOG is set. If it is set, SQL thread should wait
      until the transaction ends.
    sql/sql_parse.cc:
      Add a debug point for testing this bug.
    211552cc
rpl_stop_slave.result 3.17 KB