• Jon Olav Hauglid's avatar
    Bug #11764779 (former 57649) · bafe2403
    Jon Olav Hauglid authored
    FLUSH TABLES under FLUSH TABLES <list> WITH READ LOCK leads 
    to assert failure.
    
    This assert was triggered if a statement tried up upgrade a metadata
    lock with an active FLUSH TABLE <list> WITH READ LOCK. The assert 
    checks that the connection already holds a global intention exclusive
    metadata lock. However, FLUSH TABLE <list> WITH READ LOCK does not
    acquire this lock in order to be compatible with FLUSH TABLES WITH
    READ LOCK. Therefore any metadata lock upgrade caused the assert to
    be triggered.
    
    This patch fixes the problem by preventing metadata lock upgrade
    if the connection has an active FLUSH TABLE <list> WITH READ LOCK.
    ER_TABLE_NOT_LOCKED_FOR_WRITE will instead be reported to the client.
    
    Test case added to flush.test.
    bafe2403
sql_base.cc 298 KB