diff options
author | Krunal Bauskar krunal.bauskar@oracle.com <Unknown> | 2013-01-14 10:49:51 +0530 |
---|---|---|
committer | Krunal Bauskar krunal.bauskar@oracle.com <Unknown> | 2013-01-14 10:49:51 +0530 |
commit | 54c47527e25f7ebe8c0d995b4a9a1bea901047a9 (patch) | |
tree | aad92f261e8a7d32f91681dc585068907a6bfcee /storage/innobase/row | |
parent | c4afaa42423d664477ca5df6cb45f49860381bfc (diff) | |
download | mariadb-git-54c47527e25f7ebe8c0d995b4a9a1bea901047a9.tar.gz |
- BUG#1608883: KILLING A QUERY INSIDE INNODB CAUSES IT TO EVENTUALLY CRASH
WITH AN ASSERTION
Recently we added check to handle kill query signal for long operating
queries.
While the query interruption is reported it must to ensure cursor is restore
to proper state for HANDLER interface to work correctly.
Normal select query will not face this problem, as on recieving interrupt,
select query is aborted and new select query result in re-initialization
(including cursor).
rb://1836. Approved by Marko.
Diffstat (limited to 'storage/innobase/row')
-rw-r--r-- | storage/innobase/row/row0sel.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/storage/innobase/row/row0sel.c b/storage/innobase/row/row0sel.c index cf3b36fbac2..2137facf638 100644 --- a/storage/innobase/row/row0sel.c +++ b/storage/innobase/row/row0sel.c @@ -33,6 +33,8 @@ Created 12/19/1997 Heikki Tuuri #include "read0read.h" #include "buf0lru.h" #include "ha_prototypes.h" +#include "m_string.h" /* for my_sys.h */ +#include "my_sys.h" /* DEBUG_SYNC_C */ /* Maximum number of rows to prefetch; MySQL interface has another parameter */ #define SEL_MAX_N_PREFETCH 16 @@ -3758,7 +3760,9 @@ wait_table_again: } rec_loop: + DEBUG_SYNC_C("row_search_rec_loop"); if (trx_is_interrupted(trx)) { + btr_pcur_store_position(pcur, &mtr); err = DB_INTERRUPTED; goto normal_return; } |