Skip to content
  • Andrei Elkin's avatar
    cf8032de
    bug#12964649 MTS memory is not freed · cf8032de
    Andrei Elkin authored
    Not-released memory after stop-slave was caused by skipping MTS cleanup
    in case the Workers initialization fails.
    It could fail for instance because of imcompatibility of
    max of opt_mts_checkpoint_group and sizeof(mysql.slave_worker_info.Checkpoint_group_bitmap)
    when the former allowed a value over the size (fixed by Bug@12979420).
    
    Fixed with refining MTS stop procedure, in particular making sure that cleanup of
    Coordinator related objects is done even though Workers might not have been threaded.
    
    Also @@slave_checkpoint_group system var is made cacheble 
    into rli->checkpoint_group at slave start same way as slave_parallel_workers.
    That is a new slave session will use the last available value of @@slave_checkpoint_group
    on the eve of START-SLAVE, and changes to the variable won't have any effect to the
    running slave session.
    cf8032de
    bug#12964649 MTS memory is not freed
    Andrei Elkin authored
    Not-released memory after stop-slave was caused by skipping MTS cleanup
    in case the Workers initialization fails.
    It could fail for instance because of imcompatibility of
    max of opt_mts_checkpoint_group and sizeof(mysql.slave_worker_info.Checkpoint_group_bitmap)
    when the former allowed a value over the size (fixed by Bug@12979420).
    
    Fixed with refining MTS stop procedure, in particular making sure that cleanup of
    Coordinator related objects is done even though Workers might not have been threaded.
    
    Also @@slave_checkpoint_group system var is made cacheble 
    into rli->checkpoint_group at slave start same way as slave_parallel_workers.
    That is a new slave session will use the last available value of @@slave_checkpoint_group
    on the eve of START-SLAVE, and changes to the variable won't have any effect to the
    running slave session.
Loading