• Konstantin Osipov's avatar
    Backport of: · fcf6c154
    Konstantin Osipov authored
    revno: 2476.784.2
    committer: davi@moksha.local
    timestamp: Thu 2007-09-27 16:56:27 -0300 
    message:
    Bug#28870 check that table locks are released/reset
        
    The problem is that some mysql_lock_tables error paths are not
    resetting the tables lock type back to TL_UNLOCK. If the lock
    types are not reset properly, a table might be returned to the
    table cache with wrong lock_type.
          
    The proposed fix is to ensure that the tables lock type is always
    properly reset when mysql_lock_tables fails. This is a
    incompatible change with respect to the process state information.
    
    
    sql/lock.cc:
      Merge mysql_lock_tables cleanup sequence and the reset_lock_data
      function into a single function and take steps to ensure it is
      always called for each error exit path. Also remove references
      to the redundant THD::locked variable which was almost exclusively
      used by this function and the same information is already on proc_info.
    sql/sql_class.cc:
      Remove references to the THD::locked variable.
    sql/sql_class.h:
      Remove the THD::locked variable.
    sql/sql_show.cc:
      Remove references to THD:locked, state_info will now default to proc_info.
    fcf6c154
sql_class.cc 112 KB