Commit 858b8af7 authored by Tatiana A. Nurnberg's avatar Tatiana A. Nurnberg

Bug#43748: crash when non-super user tries to kill the replication threads

Test was flakey on some machines and showed spurious
reds for races.

New-and-improved test makes do with fewer statements,
no mysqltest-variables, and no backticks. Should hope-
fully be more robust. Heck, it's debatable whether we
should have a test for this, anyway.
parent eecf7e84
......@@ -108,13 +108,16 @@ select * from t1;
a
1
drop table t1;
Bug#43748
make a non-privileged user on slave.
-- Bug#43748
-- make a user on the slave that can list but not kill system threads.
FLUSH PRIVILEGES;
GRANT USAGE ON *.* TO user43748@127.0.0.1 IDENTIFIED BY 'meow';
try to KILL system-thread as non-privileged user.
KILL `select id from information_schema.processlist where command='Binlog Dump'`;
ERROR HY000: You are not owner of thread `select id from information_schema.processlist where command='Binlog Dump'`
throw out test-user on slave.
GRANT USAGE ON *.* TO user43748@127.0.0.1 IDENTIFIED BY 'meow';
GRANT PROCESS ON *.* TO user43748@127.0.0.1;
-- try to KILL system-thread as that non-privileged user (on slave).
SELECT id INTO @id FROM information_schema.processlist WHERE user='system user' LIMIT 1;
KILL @id;
Got one of the listed errors
-- throw out test-user on slave.
DROP USER user43748@127.0.0.1;
done. back to master.
-- done. back to master.
End of 5.1 tests
......@@ -228,36 +228,34 @@ source include/delete_anonymous_users.inc;
# Bug#43748: crash when non-super user tries to kill the replication threads
#
--echo Bug#43748
--echo -- Bug#43748
--echo -- make a user on the slave that can list but not kill system threads.
connection slave;
--echo make a non-privileged user on slave.
FLUSH PRIVILEGES;
GRANT USAGE ON *.* TO user43748@127.0.0.1 IDENTIFIED BY 'meow';
let $id = `SELECT id FROM information_schema.processlist WHERE user='system user' LIMIT 1`;
GRANT USAGE ON *.* TO user43748@127.0.0.1 IDENTIFIED BY 'meow';
GRANT PROCESS ON *.* TO user43748@127.0.0.1;
--echo -- try to KILL system-thread as that non-privileged user (on slave).
connect (cont43748,127.0.0.1,user43748,meow,test,$SLAVE_MYPORT,);
connection cont43748;
--echo try to KILL system-thread as non-privileged user.
SELECT id INTO @id FROM information_schema.processlist WHERE user='system user' LIMIT 1;
--replace_result $id "`select id from information_schema.processlist where command='Binlog Dump'`"
--error ER_KILL_DENIED_ERROR
eval KILL $id;
--error ER_KILL_DENIED_ERROR,ER_NO_SUCH_THREAD
KILL @id;
disconnect cont43748;
--echo -- throw out test-user on slave.
connection slave;
--echo throw out test-user on slave.
DROP USER user43748@127.0.0.1;
--echo -- done. back to master.
connection master;
--echo done. back to master.
# End of tests
--echo End of 5.1 tests
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment