• Andrei Elkin's avatar
    Bug#11763573 - 56299: MUTEX DEADLOCK WITH COM_BINLOG_DUMP, BINLOG PURGE, AND PROCESSLIST/KILL · a7127418
    Andrei Elkin authored
    The bug case is similar to one fixed earlier bug_49536.
    Deadlock involving LOCK_log appears to be possible because the purge running thread
    is holding LOCK_log whereas there is no sense of doing that and which fact was
    exploited by the earlier bug fixes.
    
    Fixed with small reengineering of rotate_and_purge(), adding two new methods and
    setting up a policy to execute those instead of the former
    rotate_and_purge(RP_LOCK_LOG_IS_ALREADY_LOCKED).
    The policy for using rotate(), purge() is that if the caller acquires LOCK_log itself,
    it should call rotate(), release the mutex and run purge().
    
    Side effect of this patch is refining error message of bug@11747416 to print
    the whole path.
    a7127418
sql_parse.cc 225 KB