Skip to content
  • Arun Kuruvila's avatar
    f03eff15
    Bug#30527929: RESTART CREATES ANONYMOUS TRANSACTION FOR · f03eff15
    Arun Kuruvila authored
                  MEMORY TABLE
    Bug#25681518: CLEANUP PROCEDURE FOR MEMORY ENGINE TABLES
                  BREAKS GTID REPLICA
    
    Analysis: Memory table's data will be lost after server
    restarts. To keep the data consistency between master and
    slave, it just binlogs an implicit DELETE statement when
    the memory table is locked first time.
    
    When the above scenario happens in a replication thread,
    the server raises an assertion. The reason is that the
    implicit DELETE statement consumes the GTID of the actual
    transaction (the one that is stored in the relay log), so
    that the the actual transaction, which comes later, has no
    GTID to use. This causes the assertion.
    
    Fix: This issue is fixed by creating a new THD object for
    handling the implicit binary logging of DELETE statement.
    This ensures that the implicit DELETE as well as the actual
    trasaction which triggered the implicit DELETE gets binary
    logged with the correct GTIDs. This fix also ensures that
    the implicit DELETE will be binlogged separately and will
    be wrapped by BEGIN/COMMIT pair.
    
    RB#24351
    f03eff15
    Bug#30527929: RESTART CREATES ANONYMOUS TRANSACTION FOR
    Arun Kuruvila authored
                  MEMORY TABLE
    Bug#25681518: CLEANUP PROCEDURE FOR MEMORY ENGINE TABLES
                  BREAKS GTID REPLICA
    
    Analysis: Memory table's data will be lost after server
    restarts. To keep the data consistency between master and
    slave, it just binlogs an implicit DELETE statement when
    the memory table is locked first time.
    
    When the above scenario happens in a replication thread,
    the server raises an assertion. The reason is that the
    implicit DELETE statement consumes the GTID of the actual
    transaction (the one that is stored in the relay log), so
    that the the actual transaction, which comes later, has no
    GTID to use. This causes the assertion.
    
    Fix: This issue is fixed by creating a new THD object for
    handling the implicit binary logging of DELETE statement.
    This ensures that the implicit DELETE as well as the actual
    trasaction which triggered the implicit DELETE gets binary
    logged with the correct GTIDs. This fix also ensures that
    the implicit DELETE will be binlogged separately and will
    be wrapped by BEGIN/COMMIT pair.
    
    RB#24351
Loading