diff options
Diffstat (limited to 'mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_allow.test')
-rw-r--r-- | mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_allow.test | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_allow.test b/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_allow.test new file mode 100644 index 00000000000..4932dd0a924 --- /dev/null +++ b/mysql-test/suite/perfschema/t/hostcache_ipv4_addrinfo_noname_allow.test @@ -0,0 +1,54 @@ + +# +# Tests for the performance_schema host_cache. +# +# Simulate failures from DNS: +# - getaddrinfo() fails with AGAIN +# - reported in COUNT_ADDRINFO_TRANSIENT_ERRORS + +--source include/not_embedded.inc +--source include/have_debug.inc +--source include/have_perfschema.inc + +# [Warning] Host name 'santa.claus.ipv4.example.com' could not be resolved: +# Name or service not known +call mtr.add_suppression("santa.claus.ipv4.example.com"); + +flush status; +flush hosts; +select @@global.debug; + +grant select on test.* to 'root'@'santa.claus.ipv4.example.com'; +grant select on test.* to 'root'@'192.0.2.4'; + +connect (con1,"127.0.0.1",root,,test,$MASTER_MYPORT,); +select "Con1 is alive"; +select current_user(); +disconnect con1; + +--connection default +set global debug= "+d,vio_peer_addr_fake_ipv4,getnameinfo_fake_ipv4,getaddrinfo_error_noname"; + +connect (con2,"127.0.0.1",root,,test,$MASTER_MYPORT,); +select "Con2 is alive"; +select current_user(); +disconnect con2; + +--connection default +--source ../include/hostcache_dump.inc + +connect (con3,"127.0.0.1",root,,test,$MASTER_MYPORT,); +select "Con3 is alive"; +select current_user(); +disconnect con3; + +--connection default +--source ../include/hostcache_dump.inc + +revoke select on test.* from 'root'@'santa.claus.ipv4.example.com'; +revoke select on test.* from 'root'@'192.0.2.4'; +drop user 'root'@'santa.claus.ipv4.example.com'; +drop user 'root'@'192.0.2.4'; + +set global debug= default; + |