• prabakaran thirumalai's avatar
    Bug#17083851 BACKPORT BUG#11765744 TO 5.1, 5.5 AND 5.6 · c58d7091
    prabakaran thirumalai authored
          
    Description:
    Original fix Bug#11765744 changed mutex to read write lock
    to avoid multiple recursive lock acquire operation on 
    LOCK_status mutex.  
    On Windows, locking read-write lock recursively is not safe. 
    Slim read-write locks, which MySQL uses if they are supported by
    Windows version, do not support recursion according to their 
    documentation. For our own implementation of read-write lock, 
    which is used in cases when Windows version doesn't support SRW,
    recursive locking of read-write lock can easily lead to deadlock
    if there are concurrent lock requests.
          
    Fix:  
    This patch reverts the previous fix for bug#11765744 that used
    read-write locks. Instead problem of recursive locking for
    LOCK_status mutex is solved by tracking recursion level using 
    counter in THD object and acquiring lock only once when we enter 
    fill_status() function first time. 
    c58d7091
sql_class.cc 151 KB