Commit d91f4dea authored by unknown's avatar unknown

BUG#11704: Make InnoDB not to convert TL_WRITE_ONLY locks to TL_WRITE_ALLOW_WRITE in

OPTIMIZE TABLE.


sql/ha_innodb.cc:
  Fix for BUG#11704: "Found locks from different thread" warnings:
  The source of warnings was this scenario in OPTIMIZE:
    thr1: lock table with TL_WRITE_ONLY (InnoDB converts lock to TL_WRITE_ALLOW_WRITE)
    thr2: (UPDATE command) obtains a TL_WRITE_ALLOW_WRITE lock
    thr1: call mysql_lock_abort(). This function sets type of thr'1 lock to TL_WRITE_ONLY
    thr2: try to release thr2's lock. See two locks: TL_WRITE_ONLY, TL_WRITE_ALLOW_WRITE 
          and produce a warning.
  
  The fix: Make InnoDB not to convert TL_WRITE_ONLY locks to TL_WRITE_ALLOW_WRITE in
  OPTIMIZE TABLE.
parent e897eb34
......@@ -6811,6 +6811,7 @@ ha_innobase::store_lock(
|| thd->lex->sql_command == SQLCOM_CALL)
&& !thd->tablespace_op
&& thd->lex->sql_command != SQLCOM_TRUNCATE
&& thd->lex->sql_command != SQLCOM_OPTIMIZE
&& thd->lex->sql_command != SQLCOM_CREATE_TABLE) {
lock_type = TL_WRITE_ALLOW_WRITE;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment