Skip to content
  • Venkatesh Duggirala's avatar
    14901372
    Bug#20748570 BOOL HA_TRX_INFO::IS_TRX_READ_WRITE() CONST: ASSERTION `IS_STARTED()' FAILED. · 14901372
    Venkatesh Duggirala authored
    Problem: Server is hitting the above mentioned assert when commiting statements
    under GTID_MODE is ON + binlog disabled + autocommit enabled combination.
    
    Analysis:  Server saves (commits) transaction owned gtid into gtid_executed table
    before transaction prepare if binlog is disabled or binlog is enabled
    and log_slave_updates is disabled with slave SQL thread or slave worker
    thread. ha_commit_trans() function calculates tranaction context ahead
    of calling gtid_state->save. It could happen that the calculated transaction
    context (ha_info) would  have got committed inside gtid_state->save call
    when autocommit is enabled. In this case, Server is hitting the above
    mentioned error.
    
    Fix: Calculate transaction context after calling gtid_state->save().
    Only execute commit on the remaining/pending transactions.
    14901372
    Bug#20748570 BOOL HA_TRX_INFO::IS_TRX_READ_WRITE() CONST: ASSERTION `IS_STARTED()' FAILED.
    Venkatesh Duggirala authored
    Problem: Server is hitting the above mentioned assert when commiting statements
    under GTID_MODE is ON + binlog disabled + autocommit enabled combination.
    
    Analysis:  Server saves (commits) transaction owned gtid into gtid_executed table
    before transaction prepare if binlog is disabled or binlog is enabled
    and log_slave_updates is disabled with slave SQL thread or slave worker
    thread. ha_commit_trans() function calculates tranaction context ahead
    of calling gtid_state->save. It could happen that the calculated transaction
    context (ha_info) would  have got committed inside gtid_state->save call
    when autocommit is enabled. In this case, Server is hitting the above
    mentioned error.
    
    Fix: Calculate transaction context after calling gtid_state->save().
    Only execute commit on the remaining/pending transactions.
Loading