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.
This commit is contained in:
parent
85ff7bec70
commit
612266ec90
@ -830,6 +830,11 @@ sql mode: 0x%lx, sort len: %lu, conncat len: %lu",
|
||||
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)
|
||||
|
@ -919,14 +919,12 @@ bool select_send::send_data(List<Item> &items)
|
||||
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<Item> li(items);
|
||||
Protocol *protocol= thd->protocol;
|
||||
@ -956,12 +954,10 @@ bool select_send::send_data(List<Item> &items)
|
||||
|
||||
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)
|
||||
|
@ -445,9 +445,8 @@ Sensitive_cursor::fetch(ulong num_rows)
|
||||
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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user