Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 18.217.163.75
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
mysql /
mysql-test /
suite /
x /
t /
[ HOME SHELL ]
Name
Size
Permission
Action
macros
[ DIR ]
drwxr-xr-x
admin_bogus.test
600
B
-rw-r--r--
admin_bogus_mysqlx.test
597
B
-rw-r--r--
admin_create_collection.test
3.29
KB
-rw-r--r--
admin_create_collection_mysqlx...
2.67
KB
-rw-r--r--
admin_create_index_datetime.te...
5.15
KB
-rw-r--r--
admin_create_index_datetime_my...
2.6
KB
-rw-r--r--
admin_create_index_string.test
12.03
KB
-rw-r--r--
admin_create_index_string_mysq...
3.29
KB
-rw-r--r--
admin_ensure_collection.test
4.51
KB
-rw-r--r--
admin_ensure_collection_mysqlx...
3.7
KB
-rw-r--r--
admin_kill.test
2.36
KB
-rw-r--r--
admin_kill_client_mysqlx.test
1.69
KB
-rw-r--r--
admin_list_objects.test
2.57
KB
-rw-r--r--
admin_list_objects_case_insens...
577
B
-rw-r--r--
admin_list_objects_case_insens...
735
B
-rw-r--r--
admin_list_objects_case_sensit...
353
B
-rw-r--r--
admin_list_objects_case_sensit...
27
B
-rw-r--r--
admin_list_objects_case_sensit...
394
B
-rw-r--r--
admin_list_objects_mysqlx.test
2.59
KB
-rw-r--r--
admin_ping.test
484
B
-rw-r--r--
admin_ping_mysqlx.test
1.21
KB
-rw-r--r--
admin_xkill.test
44.87
KB
-rw-r--r--
binary_log-master.opt
110
B
-rw-r--r--
binary_log.test
1.2
KB
-rw-r--r--
bug_23028052.test
2.56
KB
-rw-r--r--
capabilities-master.opt
42
B
-rw-r--r--
capabilities.test
10.19
KB
-rw-r--r--
client_close.test
8.23
KB
-rw-r--r--
client_close_abort.test
1.93
KB
-rw-r--r--
client_session.test
1.61
KB
-rw-r--r--
connection.test
31.38
KB
-rw-r--r--
connection_default_schema.test
2.3
KB
-rw-r--r--
connection_expire.test
7.4
KB
-rw-r--r--
connection_expired_certs-maste...
167
B
-rw-r--r--
connection_expired_certs.test
677
B
-rw-r--r--
connection_ipv6-master.opt
35
B
-rw-r--r--
connection_ipv6.test
5.39
KB
-rw-r--r--
connection_nonssl-master.opt
42
B
-rw-r--r--
connection_nonssl.test
5.97
KB
-rw-r--r--
connection_openssl-master.opt
273
B
-rw-r--r--
connection_openssl.test
70
B
-rw-r--r--
connection_require_secure_tran...
2.77
KB
-rw-r--r--
connection_reset_by_peer.test
1.01
KB
-rw-r--r--
connection_skip_grant_table.te...
2.88
KB
-rw-r--r--
connection_skip_networking.tes...
3.21
KB
-rw-r--r--
connection_skip_networking_win...
57
B
-rw-r--r--
connection_skip_networking_win...
1.77
KB
-rw-r--r--
connection_timeout.test
2.72
KB
-rw-r--r--
connection_tls_version-master....
300
B
-rw-r--r--
connection_tls_version.test
4.47
KB
-rw-r--r--
connection_unixsocket.test
6.81
KB
-rw-r--r--
connection_unixsocket_invalid....
7.29
KB
-rw-r--r--
connection_unixsocket_lock.tes...
3.15
KB
-rw-r--r--
connection_unixsocket_rpl.test
7.17
KB
-rw-r--r--
connection_user_authentication...
89
B
-rw-r--r--
connection_user_authentication...
85
B
-rw-r--r--
connection_without_session.tes...
464
B
-rw-r--r--
connection_yassl-master.opt
272
B
-rw-r--r--
create_alter_sql.test
7.07
KB
-rw-r--r--
create_drop_collection_crud.te...
17.36
KB
-rw-r--r--
create_index_crud.test
23.75
KB
-rw-r--r--
crud_asterisk.test
1.65
KB
-rw-r--r--
crud_create_view-master.opt
31
B
-rw-r--r--
crud_create_view.test
5.47
KB
-rw-r--r--
crud_debug.test
6.46
KB
-rw-r--r--
crud_delete_args.test
2.16
KB
-rw-r--r--
crud_doc_criteria_args.test
21.18
KB
-rw-r--r--
crud_doc_expr_array.test
14.41
KB
-rw-r--r--
crud_doc_expr_object.test
6.69
KB
-rw-r--r--
crud_drop_view.test
1.12
KB
-rw-r--r--
crud_find_args.test
5.47
KB
-rw-r--r--
crud_find_doc_criteria.test
3.17
KB
-rw-r--r--
crud_find_doc_groupby.test
5.82
KB
-rw-r--r--
crud_find_groupby.test
8.13
KB
-rw-r--r--
crud_insert_args.test
2.01
KB
-rw-r--r--
crud_insert_cast.test
8.81
KB
-rw-r--r--
crud_insert_default.test
2.52
KB
-rw-r--r--
crud_insert_expr.test
2.66
KB
-rw-r--r--
crud_insert_nodoc.test
814
B
-rw-r--r--
crud_modify_view.test
2.4
KB
-rw-r--r--
crud_myisam_memory.test
9
KB
-rw-r--r--
crud_octets_content_type.test
2.35
KB
-rw-r--r--
crud_order_by.test
1.47
KB
-rw-r--r--
crud_pipe.test
4.18
KB
-rw-r--r--
crud_resultset_metadata.test
965
B
-rw-r--r--
crud_rpl.test
6.69
KB
-rw-r--r--
crud_sundries.test
20.07
KB
-rw-r--r--
crud_table_criteria_args.test
17.61
KB
-rw-r--r--
crud_table_expr_array.test
14.32
KB
-rw-r--r--
crud_table_expr_object.test
5.9
KB
-rw-r--r--
crud_update_args.test
3.37
KB
-rw-r--r--
crud_update_table_json.test
7.16
KB
-rw-r--r--
crud_view_sundries.test
2.95
KB
-rw-r--r--
delete_crud_1.test
6.81
KB
-rw-r--r--
delete_crud_o.test
23.94
KB
-rw-r--r--
delete_del_all.test
1.5
KB
-rw-r--r--
delete_del_bad_collection.test
1.98
KB
-rw-r--r--
delete_del_bad_expr.test
1.83
KB
-rw-r--r--
delete_del_missing_arg.test
1.81
KB
-rw-r--r--
delete_del_multi_by_expr.test
1.88
KB
-rw-r--r--
delete_del_multi_by_id.test
1.55
KB
-rw-r--r--
delete_del_none_by_expr.test
1.88
KB
-rw-r--r--
delete_del_none_table.test
2.41
KB
-rw-r--r--
delete_del_one_by_expr.test
2.38
KB
-rw-r--r--
delete_del_table.test
1.78
KB
-rw-r--r--
delete_del_table_doc.test
2.94
KB
-rw-r--r--
delete_del_table_order.test
2.32
KB
-rw-r--r--
delete_sql_o.test
7.77
KB
-rw-r--r--
disabled.def
259
B
-rw-r--r--
drop_index_crud.test
26.67
KB
-rw-r--r--
expect_noerror.test
5.51
KB
-rw-r--r--
fieldtypes_all.test
6.1
KB
-rw-r--r--
find_crud_conditionalclauses_o...
24.24
KB
-rw-r--r--
find_crud_groupby_o.test
16.22
KB
-rw-r--r--
find_doc_proj.test
8.52
KB
-rw-r--r--
find_doc_simple.test
5.28
KB
-rw-r--r--
find_docpath_expr.test
5.09
KB
-rw-r--r--
find_funtion_call.test
34.5
KB
-rw-r--r--
find_table_find.test
5.18
KB
-rw-r--r--
find_table_find_as_doc.test
4.5
KB
-rw-r--r--
find_table_find_rows_proj.test
5.3
KB
-rw-r--r--
forbidden_sql_cmd.test
1.28
KB
-rw-r--r--
input_queue.test
3.81
KB
-rw-r--r--
insert_crud_1.test
16.11
KB
-rw-r--r--
insert_crud_o.test
25.09
KB
-rw-r--r--
insert_doc_bad_proj.test
1.79
KB
-rw-r--r--
insert_doc_id.test
1.74
KB
-rw-r--r--
insert_doc_id_dup.test
2.61
KB
-rw-r--r--
insert_doc_noid.test
1.72
KB
-rw-r--r--
insert_sql_o.test
5.24
KB
-rw-r--r--
insert_table.test
8.29
KB
-rw-r--r--
insert_table_bad_column.test
2.27
KB
-rw-r--r--
insert_table_bad_column_type.t...
5.1
KB
-rw-r--r--
insert_table_bad_numcolumns.te...
5.39
KB
-rw-r--r--
insert_table_escape_identifier...
1.19
KB
-rw-r--r--
insert_table_missing_notnull_c...
1.17
KB
-rw-r--r--
insert_table_string_quoting.te...
1.31
KB
-rw-r--r--
installxplugin.test
11.13
KB
-rw-r--r--
killconnection.test
4.78
KB
-rw-r--r--
message_empty_payload.test
1.42
KB
-rw-r--r--
message_protobuf_nested-master...
31
B
-rw-r--r--
message_protobuf_nested.test
2.55
KB
-rw-r--r--
multiple_resultsets_and_out_pa...
4.72
KB
-rw-r--r--
mysql_session_user.test
2.91
KB
-rw-r--r--
mysqlx_server_var.test
6.25
KB
-rw-r--r--
mysqlxtest_help.test
620
B
-rw-r--r--
notice_warning.test
2.61
KB
-rw-r--r--
notice_warning_mysqlx.test
2.14
KB
-rw-r--r--
notices_disable-master.opt
53
B
-rw-r--r--
notices_disable.test
31.05
KB
-rw-r--r--
notices_disable_mysqlx-master....
53
B
-rw-r--r--
notices_disable_mysqlx.test
21.94
KB
-rw-r--r--
notices_enable-master.opt
86
B
-rw-r--r--
notices_enable.test
33.99
KB
-rw-r--r--
notices_enable_mysqlx-master.o...
86
B
-rw-r--r--
notices_enable_mysqlx.test
25.1
KB
-rw-r--r--
performance_schema-master.opt
167
B
-rw-r--r--
performance_schema.test
20.09
KB
-rw-r--r--
performance_schema_memory.test
5.61
KB
-rw-r--r--
performance_schema_sockets-mas...
167
B
-rw-r--r--
performance_schema_sockets.tes...
8.59
KB
-rw-r--r--
performance_schema_threads-mas...
211
B
-rw-r--r--
performance_schema_threads.tes...
2.26
KB
-rw-r--r--
performance_schema_unixsockets...
8.41
KB
-rw-r--r--
plugin_license.test
613
B
-rw-r--r--
regression-master.opt
82
B
-rw-r--r--
regression.test
4.74
KB
-rw-r--r--
result_types.test
896
B
-rw-r--r--
session_reset.test
2.18
KB
-rw-r--r--
status_bytes_received.test
2.04
KB
-rw-r--r--
status_variable_errors_unknown...
31
B
-rw-r--r--
status_variable_errors_unknown...
3.15
KB
-rw-r--r--
status_variable_notices.test
751
B
-rw-r--r--
status_variables-master.opt
42
B
-rw-r--r--
status_variables.test
13.86
KB
-rw-r--r--
status_variables_incrementing....
2.52
KB
-rw-r--r--
stmtexecute_query_no_result.te...
1.07
KB
-rw-r--r--
stmtexecute_query_result.test
1.45
KB
-rw-r--r--
stmtexecute_status_vars.test
18.41
KB
-rw-r--r--
stmtexecute_with_args.test
5.27
KB
-rw-r--r--
suite.opt
30
B
-rw-r--r--
system_variable_bind_address.t...
2.27
KB
-rw-r--r--
system_variable_max_allowed_pa...
31
B
-rw-r--r--
system_variable_max_allowed_pa...
1.6
KB
-rw-r--r--
system_variable_min_worker_thr...
709
B
-rw-r--r--
system_variable_port_open_time...
6.79
KB
-rw-r--r--
system_variables.test
4.18
KB
-rw-r--r--
update_crud_arrayappend_o.test
17.02
KB
-rw-r--r--
update_crud_arrayinsert_o.test
21.96
KB
-rw-r--r--
update_crud_itemmerge_o.test
16.5
KB
-rw-r--r--
update_crud_o.test
31.18
KB
-rw-r--r--
update_crud_remove_o.test
14.41
KB
-rw-r--r--
update_crud_replace_o.test
18.42
KB
-rw-r--r--
update_doc.test
22.58
KB
-rw-r--r--
update_sql_o.test
5.23
KB
-rw-r--r--
update_table.test
9.51
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : admin_xkill.test
########### ../t/admin_xkill.test ######### ## # ## This test aims to run list_clients and kill_client admin commands # ## Test runs covers below scenarios: # ## - listing client with single session and multiple sessions # ## - killing own session and root user session with privileged user # ## - killing own session and root user session with unprivileged user ## - killing session with value of different data types than UINT # ## - killing root session with user has only process privilege # ## - listing and killing session with password expired user # ## - killing valid sql_session id with xprotocol connection # ## - listing and killing default mysqlx_max_connections ie 100 # ## - listing,killing clients with ssl xprotocol privileged conn # ## - listing and killing clients with ssl xprotocol root connection # ## - kill_client,list_clients stats with show_compatibility_56='ON' # ## - kill_client,list_clients stats with show_compatibility_56='OFF'# ## - check sum of these 2 vars with all mysqlx sessions should be as# # that of with mysql client # ###################################################################### --source ../include/xplugin_preamble.inc call mtr.add_suppression("Plugin mysqlx reported: 'Unhandled network error: Bad file descriptor'"); create user sslcon@localhost identified by 'sslcon'; grant all on *.* to sslcon@localhost; --write_file $MYSQL_TMP_DIR/admin_xkill.tmp -->sql create user abc@localhost identified by 'abc'; create user xplugin@localhost identified by 'xplugin'; grant all on *.* to xplugin@localhost; create user process@localhost identified by 'process'; grant process on *.* to process@localhost; create user expire@localhost identified by 'expire'; grant all on *.* to expire@localhost; alter user expire@localhost password expire; select sleep(1); -->endsql -->echo Test data Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=0 -->sql show status like 'Mysqlx%client%'; -->endsql -->echo create and activate new session -->newsession aux root Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=0 even with another new root session -->sql show status like 'Mysqlx%client%'; -->endsql -->echo switch back to default session -->setsession Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=2 and Mysqlx_stmt_kill_client=0 with default root session where list_clients already executed -->sql show status like 'Mysqlx%client%'; -->endsql Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 2 } } } -->recvresult -->sql select sleep(0.5); -->endsql Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=3 and Mysqlx_stmt_kill_client=1 with default root session where list_clients executed 3 times and kill_client once -->sql show status like 'Mysqlx%client%'; -->endsql -->echo create and activate new session abc -->echo expect only abc user session id -->newsession abc abc abc Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo killing root user session with unprivileged user 'abc' which should be unsuccessful Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 1 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->expecterror 1095 -->recvresult -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=1 with session abc where list_clients and kill_client executed once -->sql select sleep(0.5); show status like 'Mysqlx%client%'; select user(),current_user(); show grants; -->endsql -->echo open another session of abc user and kill first session of abc user,which should be successful -->newsession abc1 abc abc Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 3 } } } -->recvresult -->sql select sleep(0.5); -->endsql Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=2 and Mysqlx_stmt_kill_client=1 with new session abc where list_clients executed twice and kill_client executed once -->sql show status like 'Mysqlx%client%'; select user(),current_user(); show grants; -->endsql -->echo killing abc user session with its own session 'abc' which should be successful -->echo expect right error instead of End of File Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 4 } } } #-->echo expect Mysqlx.Sql.StmtExecuteOk #-->recvresult # and switch back to default -->recvuntildisc -->sql select sleep(0.5); -->endsql -->echo switch back to default session -->setsession Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=4 and Mysqlx_stmt_kill_client=1 with default root session where list_clients executed 4 times and kill_client once -->sql show status like 'Mysqlx%client%'; select user(),current_user(); show grants; -->endsql -->echo open process only privileged user seession and kill root user session,expect error "You are not owner of thread" -->newsession process process process Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 1 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->expecterror 1095 -->recvresult -->sleep 1 -->echo checking list of clients after root user session killed by xplugin user Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=2 and Mysqlx_stmt_kill_client=1 with process user where list_clients executed 2 times and kill_client once -->sql show status like 'Mysqlx%client%'; select user(),current_user(); show grants; -->endsql -->echo open privileged user seession and kill root user session,expect success -->newsession xplugin xplugin xplugin Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 1 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult -->sql select sleep(0.5); -->endsql -->echo checking list of clients after root user session killed by xplugin user Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=2 and Mysqlx_stmt_kill_client=1 with xplugin user where list_clients executed 2 times and kill_client once -->sql show status like 'Mysqlx%client%'; select user(),current_user(); show grants; -->endsql -->echo Cleanup -->sql drop schema if exists xtest; #show status like 'Mysqlx%client%'; -->endsql EOF ## killing client with invalid scalar data types --write_file $MYSQL_TMP_DIR/admin_xkill_invaliddtype.tmp Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect error while killing client with data type other than usinged int -->echo try killing xprotocol session with valid sql_session id once xprotocol connetion opened with kill_client,expect error Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 11 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->expecterror 1094 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_STRING v_string:{ value: "1" } } } } -->expecterror 5016 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_BOOL v_bool:1 } } } -->expecterror 5016 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_BOOL v_bool:0 } } } -->expecterror 5016 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_BOOL v_bool:false } } } -->expecterror 5016 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_BOOL v_bool:true } } } -->expecterror 5016 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_FLOAT v_float:1 } } } -->expecterror 5016 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_DOUBLE v_double:1 } } } -->expecterror 5016 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_NULL } } } -->expecterror 5016 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_OCTETS v_octets {value:"1"} } } } -->expecterror 5016 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_SINT v_signed_int:-1 } } } -->expecterror 5016 -->recvresult -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=11 with root user even though kill_client returns errors -->sql show status like 'Mysqlx%client%'; -->endsql EOF --write_file $MYSQL_TMP_DIR/admin_xkill_pwd_expire.tmp -->echo expect error if list_clients and kill_client executed from password expired user session -->expecterror 1820 -->sql show processlist; -->endsql Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->expecterror 1820 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 8 } } } -->recverror 1820 -->echo expect error for status var executed with password expired user -->expecterror 1820 -->sql show status like 'Mysqlx%client%'; -->endsql EOF --write_file $MYSQL_TMP_DIR/admin_mixedcase.tmp -->echo checking list_clients and kill_client with mixed case, expect success as these commands are case insensitive Mysqlx.Sql.StmtExecute { stmt: "LIST_clients" namespace: "xplugin" } ## expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_CLIENT" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 998 } } } -->recverror 1094 -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=1 with root user when these commads executed with mixed case -->sql show status like 'Mysqlx%client%'; -->endsql EOF ###below script is blind, it can be modified more efficiently by reducing no of lines --write_file $MYSQL_TMP_DIR/admin_list_kill_100conns.tmp -->echo checking list_clients and kill_client with default 100 connections, expect success for both list and kill -->sql set @@global.mysqlx_max_connections=60; create user xconnection1@localhost identified by 'xconnection1'; create user xconnection2@localhost identified by 'xconnection2'; create user xconnection3@localhost identified by 'xconnection3'; create user xconnection4@localhost identified by 'xconnection4'; create user xconnection5@localhost identified by 'xconnection5'; create user xconnection6@localhost identified by 'xconnection6'; create user xconnection7@localhost identified by 'xconnection7'; create user xconnection8@localhost identified by 'xconnection8'; create user xconnection9@localhost identified by 'xconnection9'; create user xconnection10@localhost identified by 'xconnection10'; create user xconnection11@localhost identified by 'xconnection11'; create user xconnection12@localhost identified by 'xconnection12'; create user xconnection13@localhost identified by 'xconnection13'; create user xconnection14@localhost identified by 'xconnection14'; create user xconnection15@localhost identified by 'xconnection15'; create user xconnection16@localhost identified by 'xconnection16'; create user xconnection17@localhost identified by 'xconnection17'; create user xconnection18@localhost identified by 'xconnection18'; create user xconnection19@localhost identified by 'xconnection19'; create user xconnection20@localhost identified by 'xconnection20'; create user xconnection21@localhost identified by 'xconnection21'; create user xconnection22@localhost identified by 'xconnection22'; create user xconnection23@localhost identified by 'xconnection23'; create user xconnection24@localhost identified by 'xconnection24'; create user xconnection25@localhost identified by 'xconnection25'; create user xconnection26@localhost identified by 'xconnection26'; create user xconnection27@localhost identified by 'xconnection27'; create user xconnection28@localhost identified by 'xconnection28'; create user xconnection29@localhost identified by 'xconnection29'; create user xconnection30@localhost identified by 'xconnection30'; create user xconnection31@localhost identified by 'xconnection31'; create user xconnection32@localhost identified by 'xconnection32'; create user xconnection33@localhost identified by 'xconnection33'; create user xconnection34@localhost identified by 'xconnection34'; create user xconnection35@localhost identified by 'xconnection35'; create user xconnection36@localhost identified by 'xconnection36'; create user xconnection37@localhost identified by 'xconnection37'; create user xconnection38@localhost identified by 'xconnection38'; create user xconnection39@localhost identified by 'xconnection39'; create user xconnection40@localhost identified by 'xconnection40'; create user xconnection41@localhost identified by 'xconnection41'; create user xconnection42@localhost identified by 'xconnection42'; create user xconnection43@localhost identified by 'xconnection43'; create user xconnection44@localhost identified by 'xconnection44'; create user xconnection45@localhost identified by 'xconnection45'; create user xconnection46@localhost identified by 'xconnection46'; create user xconnection47@localhost identified by 'xconnection47'; create user xconnection48@localhost identified by 'xconnection48'; create user xconnection49@localhost identified by 'xconnection49'; create user xconnection50@localhost identified by 'xconnection50'; -->endsql -->echo Test data Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=0 -->sql show status like 'Mysqlx%client%'; -->endsql -->echo create and activate new session xconnection1 -->newsession xconnection1 xconnection1 xconnection1 -->newsession xconnection2 xconnection2 xconnection2 -->newsession xconnection3 xconnection3 xconnection3 -->newsession xconnection4 xconnection4 xconnection4 -->newsession xconnection5 xconnection5 xconnection5 -->newsession xconnection6 xconnection6 xconnection6 -->newsession xconnection7 xconnection7 xconnection7 -->newsession xconnection8 xconnection8 xconnection8 -->newsession xconnection9 xconnection9 xconnection9 -->newsession xconnection10 xconnection10 xconnection10 -->newsession xconnection11 xconnection11 xconnection11 -->newsession xconnection12 xconnection12 xconnection12 -->newsession xconnection13 xconnection13 xconnection13 -->newsession xconnection14 xconnection14 xconnection14 -->newsession xconnection15 xconnection15 xconnection15 -->newsession xconnection16 xconnection16 xconnection16 -->newsession xconnection17 xconnection17 xconnection17 -->newsession xconnection18 xconnection18 xconnection18 -->newsession xconnection19 xconnection19 xconnection19 -->newsession xconnection20 xconnection20 xconnection20 -->newsession xconnection21 xconnection21 xconnection21 -->newsession xconnection22 xconnection22 xconnection22 -->newsession xconnection23 xconnection23 xconnection23 -->newsession xconnection24 xconnection24 xconnection24 -->newsession xconnection25 xconnection25 xconnection25 -->newsession xconnection26 xconnection26 xconnection26 -->newsession xconnection27 xconnection27 xconnection27 -->newsession xconnection28 xconnection28 xconnection28 -->newsession xconnection29 xconnection29 xconnection29 -->newsession xconnection30 xconnection30 xconnection30 -->newsession xconnection31 xconnection31 xconnection31 -->newsession xconnection32 xconnection32 xconnection32 -->newsession xconnection33 xconnection33 xconnection33 -->newsession xconnection34 xconnection34 xconnection34 -->newsession xconnection35 xconnection35 xconnection35 -->newsession xconnection36 xconnection36 xconnection36 -->newsession xconnection37 xconnection37 xconnection37 -->newsession xconnection38 xconnection38 xconnection38 -->newsession xconnection39 xconnection39 xconnection39 -->newsession xconnection40 xconnection40 xconnection40 -->newsession xconnection41 xconnection41 xconnection41 -->newsession xconnection42 xconnection42 xconnection42 -->newsession xconnection43 xconnection43 xconnection43 -->newsession xconnection44 xconnection44 xconnection44 -->newsession xconnection45 xconnection45 xconnection45 -->newsession xconnection46 xconnection46 xconnection46 -->newsession xconnection47 xconnection47 xconnection47 -->newsession xconnection48 xconnection48 xconnection48 -->newsession xconnection49 xconnection49 xconnection49 -->newsession xconnection50 xconnection50 xconnection50 Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host ## switch back to default session -->setsession -->echo list all connected clients Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host -->sleep 1 -->echo expect Mysqlx_stmt_list_clients=2 and Mysqlx_stmt_kill_client=0 -->sql show status like 'Mysqlx%client%'; show status like 'Mysqlx_sessions%' -->endsql -->echo killing all newly connected clients except root,one by one Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 11 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 12 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 13 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 14 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 15 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 16 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 17 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 18 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 19 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 20 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 21 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 22 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 23 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 24 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 25 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 26 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 27 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 28 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 29 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 30 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 31 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 32 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 33 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 34 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 35 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 36 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 37 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 38 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 39 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 40 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 41 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 42 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 43 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 44 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 45 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 46 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 47 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 48 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 49 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 50 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 51 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 52 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 53 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 54 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 55 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 56 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 57 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 58 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 59 } } } -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 60 } } } -->recvresult -->sql select sleep(0.5); -->endsql Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=3 and Mysqlx_stmt_kill_client=49 -->sql show status like 'Mysqlx%client%'; show status like 'Mysqlx_sessions%' -->endsql -->sql drop user xconnection1@localhost; drop user xconnection2@localhost; drop user xconnection3@localhost; drop user xconnection4@localhost; drop user xconnection5@localhost; drop user xconnection6@localhost; drop user xconnection7@localhost; drop user xconnection8@localhost; drop user xconnection9@localhost; drop user xconnection10@localhost; drop user xconnection11@localhost; drop user xconnection12@localhost; drop user xconnection13@localhost; drop user xconnection14@localhost; drop user xconnection15@localhost; drop user xconnection16@localhost; drop user xconnection17@localhost; drop user xconnection18@localhost; drop user xconnection19@localhost; drop user xconnection20@localhost; drop user xconnection21@localhost; drop user xconnection22@localhost; drop user xconnection23@localhost; drop user xconnection24@localhost; drop user xconnection25@localhost; drop user xconnection26@localhost; drop user xconnection27@localhost; drop user xconnection28@localhost; drop user xconnection29@localhost; drop user xconnection30@localhost; drop user xconnection31@localhost; drop user xconnection32@localhost; drop user xconnection33@localhost; drop user xconnection34@localhost; drop user xconnection35@localhost; drop user xconnection36@localhost; drop user xconnection37@localhost; drop user xconnection38@localhost; drop user xconnection39@localhost; drop user xconnection40@localhost; drop user xconnection41@localhost; drop user xconnection42@localhost; drop user xconnection43@localhost; drop user xconnection44@localhost; drop user xconnection45@localhost; drop user xconnection46@localhost; drop user xconnection47@localhost; drop user xconnection48@localhost; drop user xconnection49@localhost; drop user xconnection50@localhost; -->endsql EOF --write_file $MYSQL_TMP_DIR/admin_list_kill_sqlnamespace.tmp -->echo execute list_clients,kill_client with sql namespace,expect error -->echo change result file once error messages are fixed Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "sql" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->expecterror 1064 -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "sql" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 11 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->expecterror 5015 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 11 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->expecterror 5162 -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "invalid" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 11 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->expecterror 5162 -->recvresult -->echo expect Mysqlx_stmt_list_clients=0 and Mysqlx_stmt_kill_client=0 as these are not executed on right namespace -->sql show status like 'Mysqlx%client%'; -->endsql EOF --write_file $MYSQL_TMP_DIR/admin_xkill_ssl.tmp -->echo open xconnection with ssl and kill,expect success -->sql create user con1@localhost identified by 'con1'; create user con2@localhost identified by 'con2'; set @@global.mysqlx_max_connections=3; -->endsql -->echo Test data Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=0 -->sql show status like 'Mysqlx%client%'; -->endsql -->echo create and activate new session con1 -->newsession con1 con1 con1 Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=0 -->sql show status like 'Mysqlx%client%'; -->endsql -->echo open 3rd xprotocol connection where 2 sessions already opened -->newsession con2 con2 con2 -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=0 -->sql show status like 'Mysqlx%client%'; -->endsql ## switch back to default session -->setsession Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 63 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 64 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult -->sql select sleep(0.5); -->endsql Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=3 and Mysqlx_stmt_kill_client=2 -->sql drop user con1@localhost; drop user con2@localhost; show status like 'Mysqlx%client%'; -->endsql EOF --write_file $MYSQL_TMP_DIR/admin_xkill_ssl_root.tmp -->echo open xconnection with ssl root user kill,expect success -->sql create user con1@localhost identified by 'con1'; create user con2@localhost identified by 'con2'; set @@global.mysqlx_max_connections=3; -->endsql -->echo Test data Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo create and activate new session con1 -->newsession con1 con1 con1 Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo open 3rd xprotocol connection where 2 sessions already opened -->newsession con2 con2 con2 ## switch back to default session -->setsession Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 66 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 67 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult -->sql select sleep(0.5); -->endsql Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host -->sql drop user con1@localhost; drop user con2@localhost; -->endsql EOF --write_file $MYSQL_TMP_DIR/admin_xkill_compatibility_56_OFF.tmp -->sql create user abc@localhost identified by 'abc'; create user xplugin@localhost identified by 'xplugin'; grant all on *.* to xplugin@localhost; create user process@localhost identified by 'process'; grant process on *.* to process@localhost; create user expire@localhost identified by 'expire'; grant all on *.* to expire@localhost; alter user expire@localhost password expire; -->endsql -->echo Test data Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=0 -->sql show status like 'Mysqlx%client%'; -->endsql -->echo create and activate new session -->newsession aux root Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=1 and Mysqlx_stmt_kill_client=0 even with another new root session -->sql show status like 'Mysqlx%client%'; -->endsql -->echo switch back to default session -->setsession Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect error -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=2 and Mysqlx_stmt_kill_client=0 with default root session where list_clients already executed -->sql show status like 'Mysqlx%client%'; -->endsql Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 2 } } } -->recvresult -->sql select sleep(0.5); -->endsql Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } #-->recverror 5162 -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=3 and Mysqlx_stmt_kill_client=1 with default root session where list_clients executed 3 times and kill_client once -->sql show status like 'Mysqlx%client%'; -->endsql -->echo create and activate new session abc -->echo expect only abc user session id -->newsession abc abc abc Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo killing root user session with unprivileged user 'abc' which should be unsuccessful Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 1 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->expecterror 1095 -->recvresult -->echo expect ERROR: SELECT command denied to user 'abc'@'localhost' for table 'session_status' (code 1142) for show status command -->sql show status like 'Mysqlx%client%'; -->endsql -->echo open another session of abc user and kill first session of abc user,which should be successful -->newsession abc1 abc abc Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 3 } } } -->recvresult -->sql select sleep(0.5); -->endsql Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host -->echo expect ERROR: SELECT command denied to user 'abc'@'localhost' for table 'session_status' (code 1142) for show status command -->sql show status like 'Mysqlx%client%'; -->endsql -->echo killing abc user session with its own session 'abc' which should be successful -->echo expect right error instead of End of File Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 4 } } } #-->echo expect Mysqlx.Sql.StmtExecuteOk #-->recvresult -->echo switch back to default session -->recvuntildisc -->sleep 1 Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=4 and Mysqlx_stmt_kill_client=1 with default root session where list_clients executed 4 times and kill_client once -->sql show status like 'Mysqlx%client%'; -->endsql -->echo open process only privileged user seession and kill root user session,expect error "You are not owner of thread" -->newsession process process process Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 1 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->expecterror 1095 -->recvresult -->sql select sleep(0.5); -->endsql -->echo checking list of clients after root user session killed by xplugin user Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host -->echo expect ERROR: SELECT command denied to user 'process'@'localhost' for table 'session_status' (code 1142) for show command -->sql show status like 'Mysqlx%client%'; -->endsql -->echo open privileged user seession and kill root user session,expect success -->newsession xplugin xplugin xplugin Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host Mysqlx.Sql.StmtExecute { stmt: "kill_client" namespace: "xplugin" args { type: SCALAR scalar { type: V_UINT v_unsigned_int: 1 } } } -->echo expect Mysqlx.Sql.StmtExecuteOk -->recvresult -->sql select sleep(0.5); -->endsql -->echo checking list of clients after root user session killed by xplugin user Mysqlx.Sql.StmtExecute { stmt: "list_clients" namespace: "xplugin" } -->recvresult client_id user host -->echo expect Mysqlx_stmt_list_clients=2 and Mysqlx_stmt_kill_client=1 with xplugin user where list_clients executed 2 times and kill_client once -->sql show status like 'Mysqlx%client%'; -->endsql -->echo Cleanup -->sql drop schema if exists xtest; -->endsql EOF --replace_regex /([a-z0-9]+ localhost )[0-9]+/\1$SESSION/ /You are not owner of thread [0-9]+/You are not owner of thread/ --exec $MYSQLXTEST -uroot --password='' --file=$MYSQL_TMP_DIR/admin_xkill.tmp 2>&1 --replace_regex /([a-z0-9]+ localhost )[0-9]+/\1$SESSION/ --exec $MYSQLXTEST -uroot --password='' --file=$MYSQL_TMP_DIR/admin_xkill_invaliddtype.tmp 2>&1 ##try executing list_clients and kill_client with password expired user, expect error --replace_regex /([a-z0-9]+ localhost )[0-9]+/\1$SESSION/ /Query/Execute/ --exec $MYSQLXTEST --connect-expired-password -uexpire --password='expire' --file=$MYSQL_TMP_DIR/admin_xkill_pwd_expire.tmp 2>&1 ##execute list_clients and kill_client with mixed case,expect command should be recognized --replace_regex /([a-z0-9]+ localhost )[0-9]+/\1$SESSION/ --exec $MYSQLXTEST -uroot --password='' --file=$MYSQL_TMP_DIR/admin_mixedcase.tmp 2>&1 ##open 100 xprotocol connections and list and kill them ony by one,expect success --replace_regex /([a-z0-9]+ localhost )[0-9]+/\1$SESSION/ --exec $MYSQLXTEST -uroot --password='' --file=$MYSQL_TMP_DIR/admin_list_kill_100conns.tmp 2>&1 ##execute list_clients,kill_client with invalid name space other than xplugin,exect unsuccess --replace_regex /([a-z0-9]+ localhost )[0-9]+/\1$SESSION/ --exec $MYSQLXTEST -uroot --password='' --file=$MYSQL_TMP_DIR/admin_list_kill_sqlnamespace.tmp 2>&1 ##verify list_clients and kill_client works with ssl privileged user --replace_regex /([a-z0-9]+ localhost )[0-9]+/\1$SESSION/ --exec $MYSQLXTEST -usslcon --password='sslcon' --ssl-key=$MYSQL_TEST_DIR/std_data/server-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/server-cert.pem --file=$MYSQL_TMP_DIR/admin_xkill_ssl.tmp 2>&1 ##verify list_clients and kill_client works with root user having ssl --replace_regex /([a-z0-9]+ localhost )[0-9]+/\1$SESSION/ --exec $MYSQLXTEST -uroot --password='' --ssl-key=$MYSQL_TEST_DIR/std_data/server-key.pem --ssl-cert=$MYSQL_TEST_DIR/std_data/server-cert.pem --file=$MYSQL_TMP_DIR/admin_xkill_ssl_root.tmp 2>&1 ##expect sum of all stats of kill_client,list_clients with native mysql clients as these are global to mysql client and local to mysqlx session show status like 'Mysqlx%client%'; #show status like 'Mysqlx_sessions%'; ##verify Mysqlx_stmt_kill_client and Mysqlx_stmt_list_clients with show_compatibility_56=OFF which is default in 5.7 let $restart_parameters = restart: --show_compatibility_56=OFF; --source ../include/restart_mysqld_and_wait_for_xplugin.inc drop user abc@localhost; drop user xplugin@localhost; drop user process@localhost; drop user expire@localhost; ###expects zero stats for kill_client,list_clients once server started first time set @@global.mysqlx_max_connections=100; show status like 'Mysqlx%client%'; select sleep(0.5); --replace_regex /([a-z0-9]+ localhost )[0-9]+/\1$SESSION/ /You are not owner of thread [0-9]+/You are not owner of thread/ --exec $MYSQLXTEST -uroot --password='' --file=$MYSQL_TMP_DIR/admin_xkill_compatibility_56_OFF.tmp 2>&1 ##expect sum of all stats of kill_client,list_clients with native mysql clients as these are global to mysql client and local to mysqlx session ##seems to be it is not working that way show status like 'Mysqlx%client%'; --remove_file $MYSQL_TMP_DIR/admin_xkill.tmp --remove_file $MYSQL_TMP_DIR/admin_xkill_ssl.tmp --remove_file $MYSQL_TMP_DIR/admin_xkill_ssl_root.tmp --remove_file $MYSQL_TMP_DIR/admin_xkill_invaliddtype.tmp --remove_file $MYSQL_TMP_DIR/admin_xkill_pwd_expire.tmp --remove_file $MYSQL_TMP_DIR/admin_mixedcase.tmp --remove_file $MYSQL_TMP_DIR/admin_list_kill_100conns.tmp --remove_file $MYSQL_TMP_DIR/admin_list_kill_sqlnamespace.tmp --remove_file $MYSQL_TMP_DIR/admin_xkill_compatibility_56_OFF.tmp ## Postamble uninstall plugin mysqlx; drop user abc@localhost; drop user xplugin@localhost; drop user process@localhost; drop user expire@localhost; drop user sslcon@localhost;
Close