Skip to content
  • Christopher Powers's avatar
    ba1bbc46
    Bug#21935106 SHOW SESSION VARIABLES RECENTLY HAVING LOCK ISSUES · ba1bbc46
    Christopher Powers authored
    The function alloc_and_copy_thd_dynamic_variables() synchronizes
    session variables with global variables. As of Bug#21840950, it uses
    the mutex THD::LOCK_thd_sysvar to block remote threads from accessing
    session vars during updates.
    
    With SHOW_COMPATIBILITY_56=OFF, SHOW VARIABLES can cause
    LOCK_thd_sysvar to be taken twice, first in System_variable::init()
    and later in alloc_and_copy_thd_dynamic_variables().
    
    System_variables::init() now only acquires LOCK_thd_sysvar if the
    target thread is not the current thread.
    
    perfschema.show_plugin.test is now two tests so that
    alloc_and_copy_thd_dynamic_variables() can be tested separately
    with SHOW_COMPATIBILITY_56 = ON and OFF.
    
    (cherry picked from commit 8d91476c0b2bc510729a786ab3ba98ef6d28c2aa)
    ba1bbc46
    Bug#21935106 SHOW SESSION VARIABLES RECENTLY HAVING LOCK ISSUES
    Christopher Powers authored
    The function alloc_and_copy_thd_dynamic_variables() synchronizes
    session variables with global variables. As of Bug#21840950, it uses
    the mutex THD::LOCK_thd_sysvar to block remote threads from accessing
    session vars during updates.
    
    With SHOW_COMPATIBILITY_56=OFF, SHOW VARIABLES can cause
    LOCK_thd_sysvar to be taken twice, first in System_variable::init()
    and later in alloc_and_copy_thd_dynamic_variables().
    
    System_variables::init() now only acquires LOCK_thd_sysvar if the
    target thread is not the current thread.
    
    perfschema.show_plugin.test is now two tests so that
    alloc_and_copy_thd_dynamic_variables() can be tested separately
    with SHOW_COMPATIBILITY_56 = ON and OFF.
    
    (cherry picked from commit 8d91476c0b2bc510729a786ab3ba98ef6d28c2aa)
Loading