From: Tor Didriksen Date: February 24 2011 7:00am Subject: bzr commit into mysql-5.5 branch (tor.didriksen:3356) Bug#11747102 List-Archive: http://lists.mysql.com/commits/131988 X-Bug: 11747102 Message-Id: <20110224070016.321A03793@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7675039793454962218==" --===============7675039793454962218== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/didrik/repo/5.5-filesort-kill/ based on revid:vasil.dimov@stripped 3356 Tor Didriksen 2011-02-24 Bug #11747102 30771: LOG MORE INFO ABOUT THREADS KILL'D AND SORT ABORTED MESSAGES @ mysql-test/r/filesort_debug.result New test case. @ mysql-test/t/filesort_debug.test New test case. @ sql/filesort.cc thd->killed does not imply thd->is_error(), so test for that separately. modified: mysql-test/r/filesort_debug.result mysql-test/t/filesort_debug.test sql/filesort.cc === modified file 'mysql-test/r/filesort_debug.result' --- a/mysql-test/r/filesort_debug.result 2011-02-02 11:54:49 +0000 +++ b/mysql-test/r/filesort_debug.result 2011-02-24 07:00:12 +0000 @@ -14,3 +14,20 @@ DELETE FROM t1 ORDER BY (f1(10)) LIMIT 1 ERROR 42000: Incorrect number of arguments for FUNCTION test.f1; expected 0, got 1 DROP TABLE t1; DROP FUNCTION f1; +# +# Bug #11747102 +# 30771: LOG MORE INFO ABOUT THREADS KILL'D AND SORT ABORTED MESSAGES +# +# connection 1 +CREATE TABLE t1(f0 int auto_increment primary key, f1 int); +INSERT INTO t1(f1) VALUES (0),(1),(2),(3),(4),(5); +SET DEBUG_SYNC='filesort_start SIGNAL filesort_started WAIT_FOR filesort_killed'; +# Sending: (not reaped since connection is killed later) +SELECT * FROM t1 ORDER BY f1 ASC, f0; +# connection 2 +SET DEBUG_SYNC='now WAIT_FOR filesort_started'; +KILL @id; +SET DEBUG_SYNC='now SIGNAL filesort_killed'; +# connection default +SET DEBUG_SYNC= "RESET"; +DROP TABLE t1; === modified file 'mysql-test/t/filesort_debug.test' --- a/mysql-test/t/filesort_debug.test 2011-02-02 11:54:49 +0000 +++ b/mysql-test/t/filesort_debug.test 2011-02-24 07:00:12 +0000 @@ -1,4 +1,6 @@ --source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/count_sessions.inc SET @old_debug= @@session.debug; @@ -21,3 +23,37 @@ DELETE FROM t1 ORDER BY (f1(10)) LIMIT 1 DROP TABLE t1; DROP FUNCTION f1; + +--echo # +--echo # Bug #11747102 +--echo # 30771: LOG MORE INFO ABOUT THREADS KILL'D AND SORT ABORTED MESSAGES +--echo # + +connect (con1, localhost, root); +connect (con2, localhost, root); + +--echo # connection 1 +connection con1; +CREATE TABLE t1(f0 int auto_increment primary key, f1 int); +INSERT INTO t1(f1) VALUES (0),(1),(2),(3),(4),(5); + +let $ID= `SELECT @id := CONNECTION_ID()`; + +SET DEBUG_SYNC='filesort_start SIGNAL filesort_started WAIT_FOR filesort_killed'; +--echo # Sending: (not reaped since connection is killed later) +--send SELECT * FROM t1 ORDER BY f1 ASC, f0 + +--echo # connection 2 +connection con2; +let $ignore= `SELECT @id := $ID`; +SET DEBUG_SYNC='now WAIT_FOR filesort_started'; +KILL @id; +SET DEBUG_SYNC='now SIGNAL filesort_killed'; + +--echo # connection default +connection default; +disconnect con1; +disconnect con2; +--source include/wait_until_count_sessions.inc +SET DEBUG_SYNC= "RESET"; +DROP TABLE t1; === modified file 'sql/filesort.cc' --- a/sql/filesort.cc 2011-02-02 11:54:49 +0000 +++ b/sql/filesort.cc 2011-02-24 07:00:12 +0000 @@ -32,6 +32,7 @@ #include "probes_mysql.h" #include "sql_test.h" // TEST_filesort #include "opt_range.h" // SQL_SELECT +#include "debug_sync.h" /// How to write record_ref. #define WRITE_REF(file,from) \ @@ -123,6 +124,7 @@ ha_rows filesort(THD *thd, TABLE *table, Item_subselect *subselect= tab ? tab->containing_subselect() : 0; MYSQL_FILESORT_START(table->s->db.str, table->s->table_name.str); + DEBUG_SYNC(thd, "filesort_start"); /* Release InnoDB's adaptive hash index latch (if holding) before @@ -325,12 +327,13 @@ ha_rows filesort(THD *thd, TABLE *table, } if (error) { - DBUG_ASSERT(thd->is_error()); + int kill_errno= thd->killed_errno(); + DBUG_ASSERT(thd->is_error() || kill_errno); my_printf_error(ER_FILSORT_ABORT, "%s: %s", MYF(ME_ERROR + ME_WAITTANG), ER_THD(thd, ER_FILSORT_ABORT), - thd->stmt_da->message()); + kill_errno ? ER(kill_errno) : thd->stmt_da->message()); if (global_system_variables.log_warnings > 1) { --===============7675039793454962218== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/tor.didriksen@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: tor.didriksen@stripped\ # qmhcbs7oyzdgiyyy # target_branch: file:///export/home/didrik/repo/5.5-filesort-kill/ # testament_sha1: a68ae5a237cd0851f7836a75d05a72c630eedc1f # timestamp: 2011-02-24 08:00:16 +0100 # base_revision_id: vasil.dimov@stripped\ # 2u06tq4iyg6xcgd9 # # Begin bundle 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 --===============7675039793454962218==--