From: Date: April 7 2006 9:58pm Subject: bk commit into 5.0 tree (aivanov:1.2140) BUG#15758 List-Archive: http://lists.mysql.com/commits/4648 X-Bug: 15758 Message-Id: Below is the list of changes that have just been committed into a local 5.0 repository of alexi. When alexi does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet 1.2140 06/04/07 23:58:17 aivanov@stripped +3 -0 Fixed BUG#15758: "Holding adaptive search latch in innobase_query_caching_of_table_permitted()". Applied the patch due to Heikki Tuuri. Also removed superfluous #ifdefs. sql/sql_cursor.cc 1.6 06/04/07 23:58:12 aivanov@stripped +1 -2 Removing superfluous #ifdefs (suggested by Sanja, also discussed with Serg). sql/sql_class.cc 1.229 06/04/07 23:58:12 aivanov@stripped +0 -4 Removing superfluous #ifdefs (suggested by Sanja, also discussed with Serg). sql/sql_cache.cc 1.91 06/04/07 23:58:12 aivanov@stripped +5 -0 Applied the patch due to Heikki Tuuri. Query_cache::store_query(): Make InnoDB to release the adaptive hash index latch before MySQL acquires the query cache mutex. # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: aivanov # Host: mysqld.localdomain # Root: /home/alexi/bugs/mysql-5.0-15758-work --- 1.90/sql/sql_cache.cc 2006-01-04 17:46:44 +03:00 +++ 1.91/sql/sql_cache.cc 2006-04-07 23:58:12 +04:00 @@ -830,6 +830,11 @@ flags.sql_mode, flags.max_sort_length, flags.group_concat_max_len)); + /* + Make InnoDB to release the adaptive hash index latch before + acquiring the query cache mutex. + */ + ha_release_temporary_latches(thd); STRUCT_LOCK(&structure_guard_mutex); if (query_cache_size == 0) --- 1.228/sql/sql_class.cc 2006-02-24 19:34:09 +03:00 +++ 1.229/sql/sql_class.cc 2006-04-07 23:58:12 +04:00 @@ -919,14 +919,12 @@ return 0; } -#ifdef HAVE_INNOBASE_DB /* We may be passing the control from mysqld to the client: release the InnoDB adaptive hash S-latch to avoid thread deadlocks if it was reserved by thd */ ha_release_temporary_latches(thd); -#endif List_iterator_fast li(items); Protocol *protocol= thd->protocol; @@ -956,12 +954,10 @@ bool select_send::send_eof() { -#ifdef HAVE_INNOBASE_DB /* We may be passing the control from mysqld to the client: release the InnoDB adaptive hash S-latch to avoid thread deadlocks if it was reserved by thd */ ha_release_temporary_latches(thd); -#endif /* Unlock tables before sending packet to gain some speed */ if (thd->lock) --- 1.5/sql/sql_cursor.cc 2006-02-24 19:34:09 +03:00 +++ 1.6/sql/sql_cursor.cc 2006-04-07 23:58:12 +04:00 @@ -445,9 +445,8 @@ if (error == NESTED_LOOP_CURSOR_LIMIT) join->resume_nested_loop= TRUE; -#ifdef USING_TRANSACTIONS ha_release_temporary_latches(thd); -#endif + /* Grab free_list here to correctly free it in close */ thd->restore_active_arena(this, &backup_arena);