• Marko Mäkelä's avatar
    MDEV-13472 rpl.rpl_semi_sync_wait_point crashes because of thd_destructor_proxy · c720e68f
    Marko Mäkelä authored
    The thd_destructor_proxy detects that no transactions are active and
    starts srv_shutdown_bg_undo_sources(), but fails to take into account
    that new transactions can still start, especially be slave but also
    by other threads. In addition there is no mutex when checking for
    active transaction so this is not safe.
    
    We relax the failing InnoDB debug assertion by allowing the execution
    of user transactions after the purge thread has been shut down.
    
    FIXME: If innodb_fast_shutdown=0, we should somehow guarantee that no
    new transactions can start after thd_destructor_proxy observed that
    trx_sys_any_active_transactions() did not hold.
    c720e68f
trx0purge.cc 47.9 KB