Skip to content
  • Andrei Elkin's avatar
    926cb329
    Bug#12995174 - MTS: UNEXPECTED RECOVERY ATTEMPT ENDS WITH ER_MASTER_INFO OR ASSERTION FAILURE · 926cb329
    Andrei Elkin authored
    Bug#13840948 - CHANGE MASTER MODIFIES RELAY_LOG_PURGE OPTION VALUE.
    
    The patch coveres a bunch of issues.
    
    0. The reported problem itself turned out to be unnecessary recalculation of
       rli->group_master_log_* coordinates.
       In case of relay-log purging for Change-Master is not done the coordinates 
       may be safely reused.
       Otherwise, as it had been before this patch, the new values may not correspond
       to the actual execution state because the executed were set optimistically
       to the lastest that IO thread had been read.
    
       Fixed with avoiding recalculation to reuse existing rli->group_master_log_* coordinates
       for the mentioned no-purging branches of Change-Master.
    
    1. In presence of MTS recovery gaps CHANGE MASTER now errors out with 
       a new error code.
    
    2. Similar intolerance to MTS gaps is implemented for --relay-log-recovery handling
       as the option is logically equivalent to RESET SLAVE plus CHANGE MASTER.
       
    3. Bug#13840948: In some of its branches change_master() overrides an existing startup time
       option value.
    
       Fixed with reverting temporarily modified --relay-log-purge's value.
    
    4. @@global.relay_log_recovery was not read-only though it should have been.
    
       Fixed to be converted into read-only.
    
    5. fixing signature of few mts functions to pass a mutex is locked indication.
    926cb329
    Bug#12995174 - MTS: UNEXPECTED RECOVERY ATTEMPT ENDS WITH ER_MASTER_INFO OR ASSERTION FAILURE
    Andrei Elkin authored
    Bug#13840948 - CHANGE MASTER MODIFIES RELAY_LOG_PURGE OPTION VALUE.
    
    The patch coveres a bunch of issues.
    
    0. The reported problem itself turned out to be unnecessary recalculation of
       rli->group_master_log_* coordinates.
       In case of relay-log purging for Change-Master is not done the coordinates 
       may be safely reused.
       Otherwise, as it had been before this patch, the new values may not correspond
       to the actual execution state because the executed were set optimistically
       to the lastest that IO thread had been read.
    
       Fixed with avoiding recalculation to reuse existing rli->group_master_log_* coordinates
       for the mentioned no-purging branches of Change-Master.
    
    1. In presence of MTS recovery gaps CHANGE MASTER now errors out with 
       a new error code.
    
    2. Similar intolerance to MTS gaps is implemented for --relay-log-recovery handling
       as the option is logically equivalent to RESET SLAVE plus CHANGE MASTER.
       
    3. Bug#13840948: In some of its branches change_master() overrides an existing startup time
       option value.
    
       Fixed with reverting temporarily modified --relay-log-purge's value.
    
    4. @@global.relay_log_recovery was not read-only though it should have been.
    
       Fixed to be converted into read-only.
    
    5. fixing signature of few mts functions to pass a mutex is locked indication.
Loading