• Andrei Elkin's avatar
    Bug #41183 rpl_ndb_circular, rpl_ndb_circular_simplex need maintenance, crash · 9b11bc02
    Andrei Elkin authored
                
    The bug happened because filtering-out a STMT_END_F-flagged event so that
    the transaction COMMIT finds traces of incomplete statement commit.
    Such situation is only possible with ndb circular replication. The filtered-out
    rows event is one that immediately preceeds the COMMIT query event.
          
    Fixed with deploying an the rows-log-event statement commit at executing
    of the transaction COMMIT event. 
    Resources that were allocated by other than STMT_END_F-flagged event of
    the last statement are clean up prior execution of the commit logics.
    
    
    mysql-test/suite/rpl_ndb/t/disabled.def:
      re-enabling two tests.
    sql/log_event.cc:
      Adding the statement cleanup to execute at the transaction commit time.
      The statement might not be ended with execution of STMT_END_F-flagged event because of
      the event was filtered out by SERVER_ID rules.
      Small refactoring for Rows_log_event::do_update_pos() to be split on two parts:
      the statement commit that releases its execution time allocated resources, and
      the relay log update.
    9b11bc02
log_event.cc 294 KB