Skip to content
  • Joao Gramacho's avatar
    a84eb899
    BUG#20451386 SQL THREAD CRASH: LOG-SLAVE-UPDATES OFF, RELAY LOG ENDS · a84eb899
    Joao Gramacho authored
                 WITH GTID_LOG_EVENT
    
    A replication slave running with GTIDs, no binary log and relay info
    repository set to TABLE is hitting an assert (assertion "is_started()"
    at Ha_trx_info::is_trx_read_write) when applying a transaction that
    spanned across distinct relay log files.
    
    This is happening because the slave SQL thread is flushing the relay
    log info to TABLE while in the middle of a transaction (or, better,
    right after the GTID of the transaction) because of the rotation of
    the relay log.
    
    After setting the GTID next to the SQL thread thd, the slave was
    saving the rpl_info on table and calling gtid_state->save that
    "committed" the GTID set (but not used yet).
    
    The fix for this issue skips the gtid_state->save for operations
    that will save the rpl_info on table.
    a84eb899
    BUG#20451386 SQL THREAD CRASH: LOG-SLAVE-UPDATES OFF, RELAY LOG ENDS
    Joao Gramacho authored
                 WITH GTID_LOG_EVENT
    
    A replication slave running with GTIDs, no binary log and relay info
    repository set to TABLE is hitting an assert (assertion "is_started()"
    at Ha_trx_info::is_trx_read_write) when applying a transaction that
    spanned across distinct relay log files.
    
    This is happening because the slave SQL thread is flushing the relay
    log info to TABLE while in the middle of a transaction (or, better,
    right after the GTID of the transaction) because of the rotation of
    the relay log.
    
    After setting the GTID next to the SQL thread thd, the slave was
    saving the rpl_info on table and calling gtid_state->save that
    "committed" the GTID set (but not used yet).
    
    The fix for this issue skips the gtid_state->save for operations
    that will save the rpl_info on table.
Loading