# # Tests for the performance_schema host_cache. # # Simulate failures from client / server protocol: # - reported in COUNT_HANDSHAKE_ERRORS # aud further causes blocking errors: # - reported in SUM_CONNECT_ERRORS # - reported in COUNT_HOST_BLOCKED_ERRORS --source include/not_embedded.inc --source include/have_debug.inc --source include/have_perfschema.inc --source include/have_hostname_cache.inc # Enforce a clean state --source ../include/wait_for_pfs_thread_count.inc --source ../include/hostcache_set_state.inc select @@global.max_connect_errors into @saved_max_connect_errors; set global max_connect_errors = 3; create user 'root'@'santa.claus.ipv4.example.com'; grant select on test.* to 'root'@'santa.claus.ipv4.example.com'; create user 'quota'@'santa.claus.ipv4.example.com'; grant select on test.* to 'quota'@'santa.claus.ipv4.example.com'; connect (con1,"127.0.0.1",root,,test,$MASTER_MYPORT,); select "Con1 is alive"; select current_user(); disconnect con1; --connection default SET @saved_dbug = @@GLOBAL.debug_dbug; set global debug_dbug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_fake_good_ipv4,native_password_bad_reply"; --disable_query_log --error ER_HANDSHAKE_ERROR connect (con2a,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HANDSHAKE_ERROR connect (con2b,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HANDSHAKE_ERROR connect (con2c,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HOST_IS_BLOCKED connect (con2d,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HOST_IS_BLOCKED connect (con2e,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc # Now that the host is blocked, check that flush works flush hosts; --disable_query_log --error ER_HANDSHAKE_ERROR connect (con3a,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HANDSHAKE_ERROR connect (con3b,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --connection default set global debug_dbug= "-d,native_password_bad_reply"; --disable_query_log connect (con4,"127.0.0.1",quota,,test,$MASTER_MYPORT,); select "Valid connection should reset SUM_CONNECT_ERROR counter" as message; --disconnect con4 --enable_query_log --connection default set global debug_dbug= "+d,native_password_bad_reply"; --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HANDSHAKE_ERROR connect (con5a,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HANDSHAKE_ERROR connect (con5b,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HANDSHAKE_ERROR connect (con5c,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HOST_IS_BLOCKED connect (con5d,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc --disable_query_log --error ER_HOST_IS_BLOCKED connect (con5e,"127.0.0.1",quota,,test,$MASTER_MYPORT,); --enable_query_log --connection default --source ../include/hostcache_dump.inc revoke select on test.* from 'root'@'santa.claus.ipv4.example.com'; drop user 'root'@'santa.claus.ipv4.example.com'; revoke select on test.* from 'quota'@'santa.claus.ipv4.example.com'; drop user 'quota'@'santa.claus.ipv4.example.com'; set global max_connect_errors = @saved_max_connect_errors; SET @@GLOBAL.debug_dbug = @saved_dbug;