• unknown's avatar
    MDEV-5825: Assertion `! is_set() || m_can_overwrite_status' fails in... · eb2302ec
    unknown authored
    MDEV-5825: Assertion `! is_set() || m_can_overwrite_status' fails in Diagnostics_area::set_error_status on executing rpl.rpl_parallel test
    
    In parallel replication, there was an error case where we could call
    my_error() in-between events. This causes the assertion, as the previous event
    has reported ok status, but the following event has not yet reset the
    diagnostics area. This happened when a worker thread detects that the SQL
    driver thread is aborting, and when it gets an error from a prior commit at
    the same time in wait_for_prior_commit().
    
    Since this is already an error case, the code should be using
    unregister_wait_for_prior_commit() instead of wait_for_prior_commit(). But
    unregister is already done a bit later (from finish_event_group()), so just
    removing the redundant call to wait_for_prior_commit() fixes the issue.
    
    eb2302ec
rpl_parallel.cc 49.3 KB