73a7424 570667 - MMR: simultaneous total updates on the masters cause

Authored and Committed by nhosoi 14 years ago
    570667 - MMR: simultaneous total updates on the masters cause
             deadlock and data loss
    
    https://bugzilla.redhat.com/show_bug.cgi?id=570667
    
    Description: In the MMR topology, if a master receives a total
    update request to initialize the other master and being initialized
    by the other master at the same time, the 2 replication threads hang
    and the replicated backend instance could be wiped out.
    
    To prevent the server running the total update supplier and the
    consumer at the same time, REPLICA_TOTAL_EXCL_SEND and _RECV bits
    have been introduced.  If the server is sending the total update
    to other replicas, the server rejects the total update request
    on the backend.  But the server can send multiple total updates
    to other replicas at the same time.  If the total update from
    other master is in progress on the server, the server rejects
    another total update from yet another master as well as a request
    to initialize other replicas.