From cb4da5da74b7a6f2e7c4f4ed1b0e5affe45fe2a2 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Mon, 16 Mar 2020 16:53:10 +0100 Subject: MDEV-20604: Duplicate key value is silently truncated to 64 characters in print_keydup_error Added indication of truncated string for "s" and "M" formats --- mysql-test/suite/plugins/r/server_audit.result | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mysql-test/suite/plugins') diff --git a/mysql-test/suite/plugins/r/server_audit.result b/mysql-test/suite/plugins/r/server_audit.result index 7da9c840202..b056460dfa2 100644 --- a/mysql-test/suite/plugins/r/server_audit.result +++ b/mysql-test/suite/plugins/r/server_audit.result @@ -22,12 +22,12 @@ set global server_audit_file_path='server_audit.log'; set global server_audit_output_type=file; set global server_audit_logging=on; set global server_audit_incl_users= repeat("'root',", 10000); -ERROR 42000: Variable 'server_audit_incl_users' can't be set to the value of ''root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','roo' +ERROR 42000: Variable 'server_audit_incl_users' can't be set to the value of ''root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','...' show variables like 'server_audit_incl_users'; Variable_name Value server_audit_incl_users set global server_audit_excl_users= repeat("'root',", 10000); -ERROR 42000: Variable 'server_audit_excl_users' can't be set to the value of ''root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','roo' +ERROR 42000: Variable 'server_audit_excl_users' can't be set to the value of ''root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','root','...' show variables like 'server_audit_excl_users'; Variable_name Value server_audit_excl_users -- cgit v1.2.1 From 06219c2ad486085971bdd457196ab22928a5442a Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Fri, 10 Apr 2020 15:55:16 +0400 Subject: MDEV-21599 - plugins.server_audit fails sporadically in buildbot Fixed a couple of race conditions in the test case to ensure stable order of events. Also removed all sleeps. Test execution time is down from 18s to 0.15s. On disconnect audit event is triggered after control is returned to mysqltest client. Which means mysqltest may issue more commands concurrently before disconnect is actually logged. Similar problem happens with regular query execution: an event is triggered after control is returner to the client. Which may end up with unstable order of events in different connections. Delayed insert rows are enqueued separately and can either be combined into single event or go as separate events. Reduced number of inserted rows to 1 to stabilize result. Also backported 2b3f6ab from 10.5. --- mysql-test/suite/plugins/r/server_audit.result | 6 ++-- mysql-test/suite/plugins/t/server_audit.test | 42 +++++++++++++++++--------- 2 files changed, 29 insertions(+), 19 deletions(-) (limited to 'mysql-test/suite/plugins') diff --git a/mysql-test/suite/plugins/r/server_audit.result b/mysql-test/suite/plugins/r/server_audit.result index b056460dfa2..89f1c69a746 100644 --- a/mysql-test/suite/plugins/r/server_audit.result +++ b/mysql-test/suite/plugins/r/server_audit.result @@ -32,7 +32,6 @@ show variables like 'server_audit_excl_users'; Variable_name Value server_audit_excl_users connect con1,localhost,root,,mysql; -connection default; disconnect con1; connect(localhost,no_such_user,,mysql,MASTER_PORT,MASTER_SOCKET); connect con1,localhost,no_such_user,,mysql; @@ -99,7 +98,6 @@ set global server_audit_mode=1; set global server_audit_events=''; create database sa_db; connect con1,localhost,root,,test; -connection con1; create table t1 (id2 int); insert into t1 values (1), (2); select * from t1; @@ -112,8 +110,8 @@ create table sa_t1(id int); insert into sa_t1 values (1), (2); drop table sa_t1; drop database sa_db; -connection default; disconnect con1; +connection default; create database sa_db; use sa_db; CREATE USER u1 IDENTIFIED BY 'pwd-123'; @@ -219,7 +217,7 @@ grant all on sa_db.* to user1@localhost; connect cn1,localhost,user1,,sa_db; connection cn1; create table t1(id int) engine=myisam; -insert delayed into t1 values (1), (2); +insert delayed into t1 values (1); connection default; # Waiting until INSERT DELAYED thread does the insert. drop table t1; diff --git a/mysql-test/suite/plugins/t/server_audit.test b/mysql-test/suite/plugins/t/server_audit.test index 67b855871a3..7f1653ee444 100644 --- a/mysql-test/suite/plugins/t/server_audit.test +++ b/mysql-test/suite/plugins/t/server_audit.test @@ -5,6 +5,13 @@ if (!$SERVER_AUDIT_SO) { skip No SERVER_AUDIT plugin; } +# An unfortunate wait for check-testcase.test to complete disconnect. +let count_sessions= 1; +source include/wait_until_count_sessions.inc; + +let $MYSQLD_DATADIR= `SELECT @@datadir`; +let SEARCH_FILE= $MYSQLD_DATADIR/server_audit.log; + install plugin server_audit soname 'server_audit'; show variables like 'server_audit%'; @@ -20,18 +27,21 @@ show variables like 'server_audit_incl_users'; --error ER_WRONG_VALUE_FOR_VAR set global server_audit_excl_users= repeat("'root',", 10000); show variables like 'server_audit_excl_users'; +let SEARCH_COUNT= 5; +source include/wait_for_line_count_in_file.inc; ---sleep 2 connect (con1,localhost,root,,mysql); -connection default; disconnect con1; ---sleep 2 ---sleep 2 +let SEARCH_COUNT= 7; +source include/wait_for_line_count_in_file.inc; + --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT --error ER_ACCESS_DENIED_ERROR connect (con1,localhost,no_such_user,,mysql); +let SEARCH_COUNT= 9; +source include/wait_for_line_count_in_file.inc; + connection default; ---sleep 2 set global server_audit_incl_users='odin, dva, tri'; create table t1 (id int); set global server_audit_incl_users='odin, root, dva, tri'; @@ -61,11 +71,10 @@ show variables like 'server_audit%'; set global server_audit_mode=1; set global server_audit_events=''; create database sa_db; ---sleep 2 +let SEARCH_COUNT= 41; +source include/wait_for_line_count_in_file.inc; + connect (con1,localhost,root,,test); -connection con1; ---sleep 2 ---sleep 2 create table t1 (id2 int); insert into t1 values (1), (2); select * from t1; @@ -75,10 +84,11 @@ create table sa_t1(id int); insert into sa_t1 values (1), (2); drop table sa_t1; drop database sa_db; -connection default; disconnect con1; ---sleep 2 ---sleep 2 +let SEARCH_COUNT= 68; +source include/wait_for_line_count_in_file.inc; + +connection default; create database sa_db; use sa_db; CREATE USER u1 IDENTIFIED BY 'pwd-123'; @@ -146,10 +156,10 @@ connect (cn1,localhost,user1,,sa_db); connection cn1; create table t1(id int) engine=myisam; -insert delayed into t1 values (1), (2); +insert delayed into t1 values (1); connection default; --echo # Waiting until INSERT DELAYED thread does the insert. -let $wait_condition= SELECT COUNT(*) = 2 FROM t1; +let $wait_condition= SELECT COUNT(*) = 1 FROM t1; --source include/wait_condition.inc drop table t1; @@ -157,6 +167,9 @@ set global server_audit_logging= off; set global server_audit_incl_users='root'; set global server_audit_logging= on; disconnect cn1; +let $count_sessions=1; +source include/wait_until_count_sessions.inc; + drop user user1@localhost; set global server_audit_events=''; @@ -179,7 +192,6 @@ show status like 'server_audit_current_log'; show variables like 'server_audit%'; uninstall plugin server_audit; -let $MYSQLD_DATADIR= `SELECT @@datadir`; # replace the timestamp and the hostname with constant values --replace_regex /[0-9]* [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\,[^,]*\,/TIME,HOSTNAME,/ /\,[1-9][0-9]*\,/,1,/ /\,[1-9][0-9]*/,ID/ cat_file $MYSQLD_DATADIR/server_audit.log; -- cgit v1.2.1