• Brandon Nesterenko's avatar
    MDEV-34122: Assertion entry failed in Active_tranx::assert_thd_is_waiter · 66eae3ad
    Brandon Nesterenko authored
    In between the binlogging of a transaction and its wait, it is
    possible that its entry in Active_tranx was removed if semi-sync was
    switched off and on. This fires an assertion that checks before
    awaiting an ACK that the entry must exist in Active_tranx.
    
    The fix is to ensure that the entry exists before awaiting the ACK,
    and if there is no entry, write an informative message to the user
    explaining that the transaction is skipping its wait. Additionally,
    debug-build only logic is added to ensure that the cause of the
    missing entry is due to semi-sync being turned off and on.
    
    Reviewed By:
    ============
    <TODO>
    66eae3ad
semisync_master.cc 45.3 KB