- If USER is given, all threads for that user is signaled
- If SOFT is used then the KILL will not be sent to the handler. This can be used to not interrupt critical things in the handler like 'REPAIR'.
Internally added more kill signals. This gives us more information of why a query/connection was killed.
- KILL_SERVER is used when server is going down. In this case the users gets ER_SHUTDOWN as the reason connection was killed.
- Changed signals to number in correct order, which makes it easier to test how the signal should affect the code.
- New error message ER_CONNECTION_KILLED if connection was killed by 'KILL CONNECTION'. Before we got error ER_SHUTDOWN.
Changed names of not used parameters KILL_QUERY & KILL_CONNCTION to mysql_kill() to not conflict with defines in the server
include/mysql.h.pp:
Updated file
include/mysql_com.h:
Changed names of not used parameters KILL_QUERY & KILL_CONNCTION to mysql_kill() to not conflict with defines in the server
mysql-test/r/kill.result:
Added test of KILL USER
mysql-test/suite/rpl/r/rpl_stm_000001.result:
Updated error code
mysql-test/suite/rpl/t/rpl_stm_000001.test:
Updated error codes
mysql-test/t/flush_read_lock_kill.test:
Updated error codes
mysql-test/t/kill.test:
Added test of KILL USER
plugin/handler_socket/handlersocket/database.cpp:
Removed THD:: from KILL
sql/debug_sync.cc:
Removed THD:: from KILL
sql/event_scheduler.cc:
Removed THD:: from KILL
sql/filesort.cc:
Removed THD:: from KILL
sql/ha_ndbcluster_binlog.cc:
Removed THD:: from KILL
sql/handler.cc:
Removed THD:: from KILL
Simplify code.
sql/lex.h:
Added new keywords HARD | SOFT
sql/log.cc:
Removed THD:: from KILL
Added testing of new error ER_CONNECTION_KILLED
sql/log_event.cc:
Removed THD:: from KILL
Added testing of new error ER_CONNECTION_KILLED
sql/mysql_priv.h:
Added new prototypes
sql/mysqld.cc:
Removed THD:: from KILL
Use KILL_SERVER_HARD signal on shutdown.
sql/scheduler.cc:
Removed THD:: from KILL
Simplify test if connection should be killed
sql/share/errmsg.txt:
New error message ER_CONNECTION_KILLED
sql/slave.cc:
Removed THD:: from KILL
sql/sp_head.cc:
Removed THD:: from KILL
sql/sql_base.cc:
Removed THD:: from KILL
sql/sql_cache.cc:
Removed THD:: from KILL
sql/sql_class.cc:
Removed THD:: from KILL
Added killed_errno()
Only signal kill to storage engine if HARD bit is set.
sql/sql_class.h:
Move KILL options out from THD to make them easier to use in sql_yacc.yy
sql/sql_connect.cc:
Removed THD:: from KILL
sql/sql_delete.cc:
Removed THD:: from KILL
sql/sql_error.cc:
Removed THD:: from KILL
sql/sql_insert.cc:
Removed THD:: from KILL
Simplifed testing if thread is killed.
sql/sql_lex.h:
Added kill options to st_lex
sql/sql_load.cc:
Removed THD:: from KILL
sql/sql_parse.cc:
Added kill options to st_lex
Simplifed and optimzed testing of thd->killed at end of query
Added support for KILL USER
Extended sql_kill() to allow use of more kill signals.
sql/sql_repl.cc:
Removed THD:: from KILL
sql/sql_show.cc:
Removed THD:: from KILL
Simplied testing if query/connection was killed
sql/sql_table.cc:
Removed THD:: from KILL
sql/sql_update.cc:
Removed THD:: from KILL
sql/sql_yacc.yy:
Added support for new KILL syntax: KILL [HARD|SOFT] [CONNECTION|QUERY] [ID | USER user_name]
storage/archive/ha_archive.cc:
Simplify compilation
storage/maria/ha_maria.cc:
Removed THD:: from KILL
If a thread is killed in the server, we throw "shutdown" only if one is actually in
progress; otherwise, we throw "query interrupted".
Control-C in the mysql command-line client is "incremental" now.
First Control-C sends KILL QUERY (when connected to 5.0+ server, otherwise, see next)
Next Control-C sends KILL CONNECTION
Next Control-C aborts client.
As the first two steps only pertain to an existing query,
Control-C will abort the client right away if no query is running.
client will give more detailed/consistent feedback on Control-C now.
client/mysql.cc:
Extends Control-C handling; enhances up feedback to user.
On 5.0+ servers, we try to be nice and send KILL QUERY first
if Control-C is pressed in the command-line client, but if
that doesn't work, we now give the user the opportunity to
send KILL CONNECTION with another Control-C (and to kill the
client with another Control-C if that somehow doesn't work
either).
mysql-test/t/flush_read_lock_kill.test:
we're getting correct "thread killed" rather than
"in shutdown" error now
mysql-test/t/kill.test:
we're getting correct "thread killed" rather than
"in shutdown" error now
mysql-test/t/rpl000001.test:
we're getting correct "thread killed" rather than
"in shutdown" error now
mysql-test/t/rpl_error_ignored_table.test:
we're getting correct "thread killed" rather than
"in shutdown" error now
sql/records.cc:
make error messages on KILL uniform for rr_*()
by folding that handling into rr_handle_error()
sql/sql_class.h:
Only throw "shutdown" when we have one flagged as being in progress;
otherwise, throw "query interrupted" as it's likely to be "KILL CONNECTION"
or related.
+ Fix for Bug#43114 wait_until_count_sessions too restrictive, random PB failures
+ Removal of a lot of other weaknesses found
+ modifications according to review
The problem is that since MyISAM's concurrent_insert is on by
default some concurrent SELECT statements might not see changes
made by INSERT statements in other connections, even if the
INSERT statement has returned.
The solution is to disable concurrent_insert so that INSERT
statements returns after the data is actually visible to other
statements.
mysql-test/r/flush_read_lock_kill.result:
Restore old value of @@global.concurrent_insert
mysql-test/r/kill.result:
Restore old value of @@global.concurrent_insert
mysql-test/r/sp_notembedded.result:
Update test case result
mysql-test/t/flush_read_lock_kill.test:
Restore old value of @@global.concurrent_insert so it
doesn't affect other tests.
mysql-test/t/kill.test:
Restore old value of @@global.concurrent_insert so it
doesn't affect other tests.
mysql-test/t/sp_notembedded.test:
Disable and restore concurrent_insert value at the end of the
test case. The test case for Bug 29936 requires that the inserted
rows need to be visible before a SELECT statement is queued in
another connection.
Remove sleep at the start of the test, it's not necessary to log
the result of the processlist command, showing the warnings has
the same end result.
to reach the desired value.
mysql-test/r/flush_read_lock_kill.result:
Update test case result.
mysql-test/t/flush_read_lock_kill.test:
Wait for the debug synchronization point to be reached.
and bug #15668: Test 'sp-error' crashes server on Mac OS X.
mysql-test/r/rpl000001.result:
Fix for bug #15623: Test case rpl000001 and rpl_error_ignored_table failure on MacOSX
and bug #15668: Test 'sp-error' crashes server on Mac OS X.
- accept 2013 error as well.
mysql-test/t/flush_read_lock_kill.test:
Fix for bug #15623: Test case rpl000001 and rpl_error_ignored_table failure on MacOSX
and bug #15668: Test 'sp-error' crashes server on Mac OS X.
- accept 2013 error as well.
mysql-test/t/rpl000001.test:
Fix for bug #15623: Test case rpl000001 and rpl_error_ignored_table failure on MacOSX
and bug #15668: Test 'sp-error' crashes server on Mac OS X.
- accept 2013 error as well.
mysql-test/t/rpl_error_ignored_table.test:
Fix for bug #15623: Test case rpl000001 and rpl_error_ignored_table failure on MacOSX
and bug #15668: Test 'sp-error' crashes server on Mac OS X.
- accept 2013 error as well.
sql/sql_class.cc:
Fix for bug #15623: Test case rpl000001 and rpl_error_ignored_table failure on MacOSX
and bug #15668: Test 'sp-error' crashes server on Mac OS X.
- don't call the close_active_vio() in case of KILL_QUERY.
client/mysqltest.c:
Fixes after merge
mysql-test/r/type_newdecimal.result:
Update results after correction of testcase
mysql-test/t/flush_read_lock_kill.test:
Found extra delimiter
mysql-test/t/kill.test:
Found extra delimiter
mysql-test/t/rpl_loaddata.test:
Found extra delimiter
mysql-test/t/rpl_sp.test:
Found extra delimiter
mysql-test/t/strict.test:
Convert "!$1292" to "--error 1292"
mysql-test/t/type_newdecimal.test:
Missing ;
server testing cleanups.
mysql-test/r/innodb.result:
Update results
mysql-test/r/insert_select-binlog.result:
Update results
mysql-test/r/mix_innodb_myisam_binlog.result:
Update results
mysql-test/r/ps_1general.result:
Update results
mysql-test/r/ps_grant.result:
Update results
mysql-test/r/view.result:
Update results
mysql-test/t/client_xml.test:
Skip test with embedded server
mysql-test/t/flush_read_lock_kill.test:
Skip test with embedded server
mysql-test/t/grant3.test:
Skip test with embedded server
mysql-test/t/information_schema.test:
Skip test with embedded server
mysql-test/t/innodb.test:
Fix up filenames
mysql-test/t/multi_update.test:
Skip test with embedded server
mysql-test/t/mysqlshow.test:
Skip test with embedded server
mysql-test/t/ps_1general.test:
Move grant-related tests to ps_grant, and fix cleanup of filename
mysql-test/t/ps_grant.test:
Add additional tests
mysql-test/t/sp-security.test:
Skip test with embedded server
mysql-test/t/user_limits.test:
Skip test with embedded server
mysql-test/t/view.test:
Split grant-related tests to new test file view_grant
(especially in case of bug like BUG#6732 "FLUSH TABLES WITH READ LOCK + COMMIT makes next FLUSH...LOCK hang forever").
sql/lock.cc:
making FLUSH TABLES WITH READ LOCK killable while it's waiting for running commits to finish
sql/mysql_priv.h:
prototype change
sql/sql_parse.cc:
now it's possible that make_global_read_lock_block_commit fails (killed)