• Luis Soares's avatar
    BUG#53657: Slave crashed with error 22 when trying to lock mutex · fc11d74d
    Luis Soares authored
               at mf_iocache.c, line 1722
    
    The slave crashed while two threads: IO thread and user thread
    raced for the same mutex (the append_buffer_lock protecting the
    relay log's IO_CACHE). The IO thread was trying to flush the
    cache, and for that was grabbing the append_buffer_lock. 
    
    However, the other thread was closing and reopening the relay log
    when the IO thread tried to lock. Closing and reopening the log
    includes destroying and reinitialising the IO_CACHE
    mutex. Therefore, the IO thread tried to lock a destroyed mutex.
    
    We fix this by backporting patch for BUG#50364 which fixed this
    bug in mysql server 5.5+. The patch deploys missing
    synchronization when flush_master_info is called and the relay
    log is flushed by the IO thread. In detail the patch backports
    revision (from mysql-trunk):
    - luis.soares@sun.com-20100203165617-b1yydr0ee24ycpjm
    
    This patch already includes the post-push fix also in BUG#50364:
    - luis.soares@sun.com-20100222002629-0cijwqk6baxhj7gr
    fc11d74d
repl_failsafe.cc 28.2 KB