Skip to content
  • Venkatesh Duggirala's avatar
    d17d5f47
    Bug#20574628: SEMI-SYNC REPLICATION PERFORMANCE DEGRADES WITH A HIGH NUMBER OF THREADS · d17d5f47
    Venkatesh Duggirala authored
    Fixing a post push pb2 valgrind failure:
    ========================================
    
    Analysis: In commitTrx(), when a thread is waiting for the signal
    on a condition variable (entry->cond) after releasing LOCK_binlog_,
    it can happen that this 'entry' node in active transaction list
    deleted by another parallel thread which is doing semi sync off
    (::disableMaster or ::switch_off or resetMaster). This leads to
    invalid memory read issue.
    
    Fix: Now with the new design, only the thread who is doing commit
    is responsible for deleting the active transaction node. All other
    operations (disableMaster, switch_off and resetMaster) will not
    delete nodes from the active transaction list. If disableMaster
    and resetMaster finds that there are no nodes in the list,
    it will delete active_tranxs_ node.
    d17d5f47
    Bug#20574628: SEMI-SYNC REPLICATION PERFORMANCE DEGRADES WITH A HIGH NUMBER OF THREADS
    Venkatesh Duggirala authored
    Fixing a post push pb2 valgrind failure:
    ========================================
    
    Analysis: In commitTrx(), when a thread is waiting for the signal
    on a condition variable (entry->cond) after releasing LOCK_binlog_,
    it can happen that this 'entry' node in active transaction list
    deleted by another parallel thread which is doing semi sync off
    (::disableMaster or ::switch_off or resetMaster). This leads to
    invalid memory read issue.
    
    Fix: Now with the new design, only the thread who is doing commit
    is responsible for deleting the active transaction node. All other
    operations (disableMaster, switch_off and resetMaster) will not
    delete nodes from the active transaction list. If disableMaster
    and resetMaster finds that there are no nodes in the list,
    it will delete active_tranxs_ node.
Loading