• Michael Widenius's avatar
    Fixed some race conditons and bugs related to killed queries · 6e9a48b6
    Michael Widenius authored
    KILL now breaks locks inside InnoDB
    Fixed possible deadlock when running INNODB STATUS
    Added ha_kill_query() and kill_query() to send kill signal to all storage engines
    Added reset_killed() to ensure we don't reset killed state while awake() is getting called
    
    
    include/mysql/plugin.h:
      Added thd_mark_as_hard_kill()
    include/mysql/plugin_audit.h.pp:
      Added thd_mark_as_hard_kill()
    include/mysql/plugin_auth.h.pp:
      Added thd_mark_as_hard_kill()
    include/mysql/plugin_ftparser.h.pp:
      Added thd_mark_as_hard_kill()
    sql/handler.cc:
      Added ha_kill_query() to send kill signal to all storage engines
    sql/handler.h:
      Added ha_kill_query() and kill_query() to send kill signal to all storage engines
    sql/log_event.cc:
      Use reset_killed()
    sql/mdl.cc:
      use thd->killed instead of thd_killed() to abort on soft kill
    sql/sp_rcontext.cc:
      Use reset_killed()
    sql/sql_class.cc:
      Fixed possible deadlock in INNODB STATUS by not getting thd->LOCK_thd_data if it's locked.
      Use reset_killed()
      Tell storge engines that KILL has been sent
    sql/sql_class.h:
      Added reset_killed() to ensure we don't reset killed state while awake() is getting called.
      Added mark_as_hard_kill()
    sql/sql_insert.cc:
      Use reset_killed()
    sql/sql_parse.cc:
      Simplify detection of killed queries.
      Use reset_killed()
    sql/sql_select.cc:
      Use reset_killed()
    sql/sql_union.cc:
      Use reset_killed()
    storage/innobase/handler/ha_innodb.cc:
      Added innobase_kill_query()
      Fixed error reporting for interrupted queries.
    storage/xtradb/handler/ha_innodb.cc:
      Added innobase_kill_query()
      Fixed error reporting for interrupted queries.
    6e9a48b6
handler.h 109 KB