403Webshell
Server IP : 104.21.38.3  /  Your IP : 172.70.92.205
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/src/mysql-test/suite/perfschema/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/suite/perfschema/t/hostcache_ipv4_max_con.test
#
# Tests for the performance_schema host_cache.
#
# Simulate failures from per user quotas:
# - reported in COUNT_MAX_USER_CONNECTION_ERRORS
# - reported in COUNT_MAX_USER_CONNECTION_PER_HOUR_ERRORS
# Simulate failures from server quotas:
# - reported in COUNT_MAX_CONNECTION_ERRORS

--source include/not_embedded.inc
--source include/have_debug.inc
--source include/have_perfschema.inc

# Enforce a clean state
--source ../include/wait_for_pfs_thread_count.inc
--source ../include/hostcache_set_state.inc

select @@global.max_connections into @saved_max_connections;

create user 'quota'@'santa.claus.ipv4.example.com';
grant select on test.* to 'quota'@'santa.claus.ipv4.example.com';
grant usage on *.* to 'quota'@'santa.claus.ipv4.example.com'
  with max_connections_per_hour 3;

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_fake_good_ipv4";

connect (con2a,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con2a is alive";
select current_user();
disconnect con2a;

--connection default
--source ../include/hostcache_dump.inc

connect (con2b,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con2b is alive";
select current_user();
disconnect con2b;

--connection default
--source ../include/hostcache_dump.inc

connect (con2c,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con2c is alive";
select current_user();
disconnect con2c;

--connection default
--source ../include/hostcache_dump.inc

--disable_query_log
--error ER_USER_LIMIT_REACHED
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_USER_LIMIT_REACHED
connect (con2e,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log

--connection default
--source ../include/hostcache_dump.inc

# Wait for all disconnects
--source ../include/wait_for_pfs_thread_count.inc

grant usage on *.* to 'quota'@'santa.claus.ipv4.example.com'
  with max_connections_per_hour 0;
grant usage on *.* to 'quota'@'santa.claus.ipv4.example.com'
  with max_user_connections 3;
flush user_resources;

connect (con3a,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con7 is alive";
select current_user();

--connection default
--source ../include/hostcache_dump.inc

connect (con3b,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con3b is alive";
select current_user();

--connection default
--source ../include/hostcache_dump.inc

connect (con3c,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con3c is alive";
select current_user();

--connection default
--source ../include/hostcache_dump.inc

--disable_query_log
--error ER_USER_LIMIT_REACHED
connect (con3d,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log

--connection default
--source ../include/hostcache_dump.inc

--disable_query_log
--error ER_USER_LIMIT_REACHED
connect (con3e,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log

--connection default
--source ../include/hostcache_dump.inc

disconnect con3a;
disconnect con3b;
disconnect con3c;

# Wait for all disconnects
--source ../include/wait_for_pfs_thread_count.inc

grant usage on *.* to 'quota'@'santa.claus.ipv4.example.com'
  with max_user_connections 0;
flush user_resources;

set global max_user_connections = 3;

connect (con4a,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con4a is alive";
select current_user();

--connection default
--source ../include/hostcache_dump.inc

connect (con4b,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con4b is alive";
select current_user();

--connection default
--source ../include/hostcache_dump.inc

connect (con4c,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con4c is alive";
select current_user();

--connection default
--source ../include/hostcache_dump.inc

--disable_query_log
--error ER_TOO_MANY_USER_CONNECTIONS
connect (con4d,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log

--connection default
--source ../include/hostcache_dump.inc

--disable_query_log
--error ER_TOO_MANY_USER_CONNECTIONS
connect (con4e,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log

--connection default
--source ../include/hostcache_dump.inc

disconnect con4a;
disconnect con4b;
disconnect con4c;

# Wait for all disconnects
--source ../include/wait_for_pfs_thread_count.inc

set global max_user_connections = 0;
set global max_connections = 3;
flush user_resources;

connect (con5a,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con4a is alive";
select current_user();

--connection default
--source ../include/hostcache_dump.inc

connect (con5b,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
select "Con5b is alive";
select current_user();

--connection default
--source ../include/hostcache_dump.inc

# About error ER_CON_COUNT_ERROR:
# - this error is associated with SQLSTATE 08004,
#   and returned from 2 places in the server code.
# - which path returns the error is not predictable,
#   as it depends on the server load and thread scheduling
# - one path returns a SQLSTATE of 08004
# - another path returns no SQLSTATE at all,
#   and then the client sets a default value of HY000 for SQLSTATE
#
# Testing for error ER_CON_COUNT_ERROR alone causes this to
# be printed in the result file:
# - ERROR 08004: Too many connections
# which in turn causes spurious test failures.
#
# To work around this, this scripts expect to see either
# the error number ER_CON_COUNT_ERROR (it always does)
# or the error number 9999 (it never does, this error does not exist).
# The exact error number and SQLSTATE is not printed in the result file,
# makig this test robust for both cases:
# - ERROR 08004: Too many connections
# - ERROR HY000: Too many connections

--disable_query_log
--error ER_CON_COUNT_ERROR, 9999
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_CON_COUNT_ERROR, 9999
connect (con5d,"127.0.0.1",quota,,test,$MASTER_MYPORT,);
--enable_query_log

--connection default
--source ../include/hostcache_dump.inc

disconnect con5a;
disconnect con5b;

# Wait for all disconnects
--source ../include/wait_for_pfs_thread_count.inc

set global max_connections = @saved_max_connections;

# revoke all privileges on test.* from 'quota'@'santa.claus.ipv4.example.com';
drop user 'quota'@'santa.claus.ipv4.example.com';

set global debug= default;


Youez - 2016 - github.com/yon3zu
LinuXploit