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 | : 3.144.143.110
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 /
perfschema /
t /
[ HOME SHELL ]
Name
Size
Permission
Action
all_tests.test
2.51
KB
-rw-r--r--
alter_table_progress.test
3.31
KB
-rw-r--r--
bad_option.test
2.95
KB
-rw-r--r--
batch_table_io_func.test
3.53
KB
-rw-r--r--
binlog_edge_mix-master.opt
41
B
-rw-r--r--
binlog_edge_mix.test
208
B
-rw-r--r--
binlog_edge_row-master.opt
41
B
-rw-r--r--
binlog_edge_row.test
206
B
-rw-r--r--
binlog_edge_stmt-master.opt
41
B
-rw-r--r--
binlog_edge_stmt.test
212
B
-rw-r--r--
binlog_ok_mix-master.opt
41
B
-rw-r--r--
binlog_ok_mix.test
206
B
-rw-r--r--
binlog_ok_row-master.opt
41
B
-rw-r--r--
binlog_ok_row.test
204
B
-rw-r--r--
binlog_ok_stmt-master.opt
41
B
-rw-r--r--
binlog_ok_stmt.test
210
B
-rw-r--r--
checksum.test
7.57
KB
-rw-r--r--
cnf_option.cnf
273
B
-rw-r--r--
cnf_option.test
295
B
-rw-r--r--
column_privilege.test
1.82
KB
-rw-r--r--
connect_attrs.test
2.22
KB
-rw-r--r--
connection.test
163
B
-rw-r--r--
connection_3a-master.opt
43
B
-rw-r--r--
connection_3a.test
163
B
-rw-r--r--
connection_3a_3u-master.opt
83
B
-rw-r--r--
connection_3a_3u.test
163
B
-rw-r--r--
connection_3u-master.opt
40
B
-rw-r--r--
connection_3u.test
163
B
-rw-r--r--
connection_type_notwin.test
2.87
KB
-rw-r--r--
connection_type_win.test
2.86
KB
-rw-r--r--
csv_table_io.test
791
B
-rw-r--r--
ddl_accounts.test
487
B
-rw-r--r--
ddl_cond_instances.test
514
B
-rw-r--r--
ddl_esgs_by_account_by_event_n...
621
B
-rw-r--r--
ddl_esgs_by_host_by_event_name...
609
B
-rw-r--r--
ddl_esgs_by_thread_by_event_na...
617
B
-rw-r--r--
ddl_esgs_by_user_by_event_name...
609
B
-rw-r--r--
ddl_esgs_global_by_event_name....
609
B
-rw-r--r--
ddl_esms_by_account_by_event_n...
637
B
-rw-r--r--
ddl_esms_by_digest.test
571
B
-rw-r--r--
ddl_esms_by_host_by_event_name...
625
B
-rw-r--r--
ddl_esms_by_program.test
760
B
-rw-r--r--
ddl_esms_by_thread_by_event_na...
633
B
-rw-r--r--
ddl_esms_by_user_by_event_name...
625
B
-rw-r--r--
ddl_esms_global_by_event_name....
625
B
-rw-r--r--
ddl_ets_by_account_by_event_na...
645
B
-rw-r--r--
ddl_ets_by_host_by_event_name....
633
B
-rw-r--r--
ddl_ets_by_thread_by_event_nam...
641
B
-rw-r--r--
ddl_ets_by_user_by_event_name....
633
B
-rw-r--r--
ddl_ets_global_by_event_name.t...
633
B
-rw-r--r--
ddl_events_stages_current.test
798
B
-rw-r--r--
ddl_events_stages_history.test
797
B
-rw-r--r--
ddl_events_stages_history_long...
822
B
-rw-r--r--
ddl_events_statements_current....
531
B
-rw-r--r--
ddl_events_statements_history....
531
B
-rw-r--r--
ddl_events_statements_history_...
551
B
-rw-r--r--
ddl_events_transactions_curren...
539
B
-rw-r--r--
ddl_events_transactions_histor...
539
B
-rw-r--r--
ddl_events_transactions_histor...
559
B
-rw-r--r--
ddl_events_waits_current.test
511
B
-rw-r--r--
ddl_events_waits_history.test
511
B
-rw-r--r--
ddl_events_waits_history_long....
531
B
-rw-r--r--
ddl_ews_by_account_by_event_na...
617
B
-rw-r--r--
ddl_ews_by_host_by_event_name....
605
B
-rw-r--r--
ddl_ews_by_instance.test
563
B
-rw-r--r--
ddl_ews_by_thread_by_event_nam...
613
B
-rw-r--r--
ddl_ews_by_user_by_event_name....
605
B
-rw-r--r--
ddl_ews_global_by_event_name.t...
605
B
-rw-r--r--
ddl_file_instances.test
524
B
-rw-r--r--
ddl_fs_by_event_name.test
527
B
-rw-r--r--
ddl_fs_by_instance.test
519
B
-rw-r--r--
ddl_global_status.test
499
B
-rw-r--r--
ddl_global_variables.test
546
B
-rw-r--r--
ddl_host_cache.test
459
B
-rw-r--r--
ddl_hosts.test
475
B
-rw-r--r--
ddl_mems_by_account_by_event_n...
593
B
-rw-r--r--
ddl_mems_by_host_by_event_name...
581
B
-rw-r--r--
ddl_mems_by_thread_by_event_na...
589
B
-rw-r--r--
ddl_mems_by_user_by_event_name...
581
B
-rw-r--r--
ddl_mems_global_by_event_name....
577
B
-rw-r--r--
ddl_metadata_locks.test
526
B
-rw-r--r--
ddl_mutex_instances.test
518
B
-rw-r--r--
ddl_os_global_by_type.test
563
B
-rw-r--r--
ddl_performance_timers.test
542
B
-rw-r--r--
ddl_prepared_statements_instan...
744
B
-rw-r--r--
ddl_processlist.test
880
B
-rw-r--r--
ddl_replication_applier_config...
740
B
-rw-r--r--
ddl_replication_applier_status...
708
B
-rw-r--r--
ddl_replication_applier_status...
771
B
-rw-r--r--
ddl_replication_applier_status...
747
B
-rw-r--r--
ddl_replication_connection_con...
737
B
-rw-r--r--
ddl_replication_connection_sta...
712
B
-rw-r--r--
ddl_replication_group_member_s...
712
B
-rw-r--r--
ddl_replication_group_members....
688
B
-rw-r--r--
ddl_rwlock_instances.test
522
B
-rw-r--r--
ddl_session_account_connect_at...
553
B
-rw-r--r--
ddl_session_connect_attrs.test
521
B
-rw-r--r--
ddl_session_status.test
538
B
-rw-r--r--
ddl_session_variables.test
550
B
-rw-r--r--
ddl_setup_actors.test
898
B
-rw-r--r--
ddl_setup_consumers.test
518
B
-rw-r--r--
ddl_setup_instruments.test
526
B
-rw-r--r--
ddl_setup_objects.test
823
B
-rw-r--r--
ddl_setup_timers.test
506
B
-rw-r--r--
ddl_socket_instances.test
532
B
-rw-r--r--
ddl_socket_summary_by_event_na...
537
B
-rw-r--r--
ddl_socket_summary_by_instance...
537
B
-rw-r--r--
ddl_status_by_account.test
515
B
-rw-r--r--
ddl_status_by_host.test
503
B
-rw-r--r--
ddl_status_by_thread.test
511
B
-rw-r--r--
ddl_status_by_user.test
503
B
-rw-r--r--
ddl_table_handles.test
522
B
-rw-r--r--
ddl_threads.test
506
B
-rw-r--r--
ddl_tiws_by_index_usage.test
585
B
-rw-r--r--
ddl_tiws_by_table.test
561
B
-rw-r--r--
ddl_tlws_by_table.test
569
B
-rw-r--r--
ddl_users.test
475
B
-rw-r--r--
ddl_uvar_by_thread.test
578
B
-rw-r--r--
ddl_variables_by_thread.test
558
B
-rw-r--r--
digest_null_literal.test
872
B
-rw-r--r--
digest_table_full-master.opt
42
B
-rw-r--r--
digest_table_full.test
1.01
KB
-rw-r--r--
digest_view.test
1.88
KB
-rw-r--r--
disabled.def
505
B
-rw-r--r--
dml_accounts.test
1.01
KB
-rw-r--r--
dml_cond_instances.test
901
B
-rw-r--r--
dml_esgs_by_account_by_event_n...
1.41
KB
-rw-r--r--
dml_esgs_by_host_by_event_name...
1.38
KB
-rw-r--r--
dml_esgs_by_thread_by_event_na...
1.39
KB
-rw-r--r--
dml_esgs_by_user_by_event_name...
1.38
KB
-rw-r--r--
dml_esgs_global_by_event_name....
1.35
KB
-rw-r--r--
dml_esms_by_account_by_event_n...
1.45
KB
-rw-r--r--
dml_esms_by_digest.test
1.29
KB
-rw-r--r--
dml_esms_by_host_by_event_name...
1.42
KB
-rw-r--r--
dml_esms_by_program.test
1.49
KB
-rw-r--r--
dml_esms_by_thread_by_event_na...
1.43
KB
-rw-r--r--
dml_esms_by_user_by_event_name...
1.42
KB
-rw-r--r--
dml_esms_global_by_event_name....
1.39
KB
-rw-r--r--
dml_ets_by_account_by_event_na...
1.47
KB
-rw-r--r--
dml_ets_by_host_by_event_name....
1.43
KB
-rw-r--r--
dml_ets_by_thread_by_event_nam...
1.45
KB
-rw-r--r--
dml_ets_by_user_by_event_name....
1.43
KB
-rw-r--r--
dml_ets_global_by_event_name.t...
1.41
KB
-rw-r--r--
dml_events_stages_current.test
1.14
KB
-rw-r--r--
dml_events_stages_history.test
1.38
KB
-rw-r--r--
dml_events_stages_history_long...
1.43
KB
-rw-r--r--
dml_events_statements_current....
1.18
KB
-rw-r--r--
dml_events_statements_history....
1.43
KB
-rw-r--r--
dml_events_statements_history_...
1.49
KB
-rw-r--r--
dml_events_transactions_curren...
1.2
KB
-rw-r--r--
dml_events_transactions_histor...
1.46
KB
-rw-r--r--
dml_events_transactions_histor...
1.51
KB
-rw-r--r--
dml_events_waits_current.test
1.14
KB
-rw-r--r--
dml_events_waits_history.test
1.38
KB
-rw-r--r--
dml_events_waits_history_long....
1.44
KB
-rw-r--r--
dml_ews_by_account_by_event_na...
1.42
KB
-rw-r--r--
dml_ews_by_host_by_event_name....
1.38
KB
-rw-r--r--
dml_ews_by_instance.test
1.74
KB
-rw-r--r--
dml_ews_by_thread_by_event_nam...
1.39
KB
-rw-r--r--
dml_ews_by_user_by_event_name....
1.38
KB
-rw-r--r--
dml_ews_global_by_event_name.t...
1.35
KB
-rw-r--r--
dml_file_instances.test
3
KB
-rw-r--r--
dml_fs_by_event_name.test
1.21
KB
-rw-r--r--
dml_fs_by_instance.test
1.2
KB
-rw-r--r--
dml_global_status.test
979
B
-rw-r--r--
dml_global_variables.test
1007
B
-rw-r--r--
dml_handler.test
1.29
KB
-rw-r--r--
dml_host_cache.test
1.08
KB
-rw-r--r--
dml_hosts.test
985
B
-rw-r--r--
dml_mems_by_account_by_event_n...
1.37
KB
-rw-r--r--
dml_mems_by_host_by_event_name...
1.34
KB
-rw-r--r--
dml_mems_by_thread_by_event_na...
1.36
KB
-rw-r--r--
dml_mems_by_user_by_event_name...
1.34
KB
-rw-r--r--
dml_mems_global_by_event_name....
1.32
KB
-rw-r--r--
dml_metadata_locks.test
932
B
-rw-r--r--
dml_mutex_instances.test
909
B
-rw-r--r--
dml_os_global_by_type.test
1.98
KB
-rw-r--r--
dml_performance_timers.test
1.06
KB
-rw-r--r--
dml_prepared_statements_instan...
1.47
KB
-rw-r--r--
dml_processlist.test
1.07
KB
-rw-r--r--
dml_replication_applier_config...
1.16
KB
-rw-r--r--
dml_replication_applier_status...
1.27
KB
-rw-r--r--
dml_replication_applier_status...
1.48
KB
-rw-r--r--
dml_replication_applier_status...
1.42
KB
-rw-r--r--
dml_replication_connection_con...
1.39
KB
-rw-r--r--
dml_replication_connection_sta...
1.38
KB
-rw-r--r--
dml_replication_group_member_s...
1.19
KB
-rw-r--r--
dml_replication_group_members....
1.18
KB
-rw-r--r--
dml_rwlock_instances.test
917
B
-rw-r--r--
dml_session_account_connect_at...
1.17
KB
-rw-r--r--
dml_session_connect_attrs.test
1.1
KB
-rw-r--r--
dml_session_status.test
987
B
-rw-r--r--
dml_session_variables.test
1011
B
-rw-r--r--
dml_setup_actors.test
3.33
KB
-rw-r--r--
dml_setup_consumers.test
1008
B
-rw-r--r--
dml_setup_instruments.test
2.93
KB
-rw-r--r--
dml_setup_objects.test
2.65
KB
-rw-r--r--
dml_setup_timers.test
1.97
KB
-rw-r--r--
dml_socket_instances.test
918
B
-rw-r--r--
dml_socket_summary_by_event_na...
1.2
KB
-rw-r--r--
dml_socket_summary_by_instance...
1.21
KB
-rw-r--r--
dml_status_by_account.test
1.13
KB
-rw-r--r--
dml_status_by_host.test
1.09
KB
-rw-r--r--
dml_status_by_thread.test
1.1
KB
-rw-r--r--
dml_status_by_user.test
1.09
KB
-rw-r--r--
dml_table_handles.test
922
B
-rw-r--r--
dml_threads.test
1.27
KB
-rw-r--r--
dml_tiws_by_index_usage.test
1.32
KB
-rw-r--r--
dml_tiws_by_table.test
1.27
KB
-rw-r--r--
dml_tlws_by_table.test
1.29
KB
-rw-r--r--
dml_users.test
985
B
-rw-r--r--
dml_uvar_by_thread.test
1.35
KB
-rw-r--r--
dml_variables_by_thread.test
1.13
KB
-rw-r--r--
event_aggregate-master.opt
32
B
-rw-r--r--
event_aggregate.test
280
B
-rw-r--r--
event_aggregate_no_a-master.op...
75
B
-rw-r--r--
event_aggregate_no_a.test
281
B
-rw-r--r--
event_aggregate_no_a_no_h-mast...
115
B
-rw-r--r--
event_aggregate_no_a_no_h.test
281
B
-rw-r--r--
event_aggregate_no_a_no_u-mast...
115
B
-rw-r--r--
event_aggregate_no_a_no_u.test
281
B
-rw-r--r--
event_aggregate_no_a_no_u_no_h...
155
B
-rw-r--r--
event_aggregate_no_a_no_u_no_h...
281
B
-rw-r--r--
event_aggregate_no_h-master.op...
72
B
-rw-r--r--
event_aggregate_no_h.test
281
B
-rw-r--r--
event_aggregate_no_u-master.op...
72
B
-rw-r--r--
event_aggregate_no_u.test
281
B
-rw-r--r--
event_aggregate_no_u_no_h-mast...
112
B
-rw-r--r--
event_aggregate_no_u_no_h.test
281
B
-rw-r--r--
file_misc-master.opt
48
B
-rw-r--r--
file_misc.test
258
B
-rw-r--r--
func_file_io.test
5.69
KB
-rw-r--r--
func_mutex.test
4.47
KB
-rw-r--r--
global_objects-master.opt
46
B
-rw-r--r--
global_objects.test
1.13
KB
-rw-r--r--
global_read_lock.test
2.33
KB
-rw-r--r--
hostcache_ipv4_addrinfo_again_...
1.41
KB
-rw-r--r--
hostcache_ipv4_addrinfo_again_...
1.17
KB
-rw-r--r--
hostcache_ipv4_addrinfo_bad_al...
1.53
KB
-rw-r--r--
hostcache_ipv4_addrinfo_bad_de...
1.29
KB
-rw-r--r--
hostcache_ipv4_addrinfo_good_a...
1.46
KB
-rw-r--r--
hostcache_ipv4_addrinfo_good_d...
1.16
KB
-rw-r--r--
hostcache_ipv4_addrinfo_noname...
1.58
KB
-rw-r--r--
hostcache_ipv4_addrinfo_noname...
1.16
KB
-rw-r--r--
hostcache_ipv4_auth_plugin-mas...
35
B
-rw-r--r--
hostcache_ipv4_auth_plugin.tes...
2.57
KB
-rw-r--r--
hostcache_ipv4_blocked.test
4.08
KB
-rw-r--r--
hostcache_ipv4_format.test
1.07
KB
-rw-r--r--
hostcache_ipv4_max_con.test
6.37
KB
-rw-r--r--
hostcache_ipv4_nameinfo_again_...
1.98
KB
-rw-r--r--
hostcache_ipv4_nameinfo_again_...
1.58
KB
-rw-r--r--
hostcache_ipv4_nameinfo_noname...
1.35
KB
-rw-r--r--
hostcache_ipv4_nameinfo_noname...
1.11
KB
-rw-r--r--
hostcache_ipv4_passwd.test
2.28
KB
-rw-r--r--
hostcache_ipv4_ssl.test
1.9
KB
-rw-r--r--
hostcache_ipv6_addrinfo_again_...
18
B
-rw-r--r--
hostcache_ipv6_addrinfo_again_...
1.44
KB
-rw-r--r--
hostcache_ipv6_addrinfo_again_...
18
B
-rw-r--r--
hostcache_ipv6_addrinfo_again_...
1.19
KB
-rw-r--r--
hostcache_ipv6_addrinfo_bad_al...
18
B
-rw-r--r--
hostcache_ipv6_addrinfo_bad_al...
1.56
KB
-rw-r--r--
hostcache_ipv6_addrinfo_bad_de...
18
B
-rw-r--r--
hostcache_ipv6_addrinfo_bad_de...
1.31
KB
-rw-r--r--
hostcache_ipv6_addrinfo_good_a...
18
B
-rw-r--r--
hostcache_ipv6_addrinfo_good_a...
1.47
KB
-rw-r--r--
hostcache_ipv6_addrinfo_good_d...
18
B
-rw-r--r--
hostcache_ipv6_addrinfo_good_d...
1.05
KB
-rw-r--r--
hostcache_ipv6_addrinfo_noname...
18
B
-rw-r--r--
hostcache_ipv6_addrinfo_noname...
1.61
KB
-rw-r--r--
hostcache_ipv6_addrinfo_noname...
18
B
-rw-r--r--
hostcache_ipv6_addrinfo_noname...
1.18
KB
-rw-r--r--
hostcache_ipv6_auth_plugin-mas...
53
B
-rw-r--r--
hostcache_ipv6_auth_plugin.tes...
2.57
KB
-rw-r--r--
hostcache_ipv6_blocked-master....
18
B
-rw-r--r--
hostcache_ipv6_blocked.test
4.03
KB
-rw-r--r--
hostcache_ipv6_max_con-master....
18
B
-rw-r--r--
hostcache_ipv6_max_con.test
5.42
KB
-rw-r--r--
hostcache_ipv6_nameinfo_again_...
18
B
-rw-r--r--
hostcache_ipv6_nameinfo_again_...
2
KB
-rw-r--r--
hostcache_ipv6_nameinfo_again_...
18
B
-rw-r--r--
hostcache_ipv6_nameinfo_again_...
1.58
KB
-rw-r--r--
hostcache_ipv6_nameinfo_noname...
18
B
-rw-r--r--
hostcache_ipv6_nameinfo_noname...
1.38
KB
-rw-r--r--
hostcache_ipv6_nameinfo_noname...
18
B
-rw-r--r--
hostcache_ipv6_nameinfo_noname...
1.13
KB
-rw-r--r--
hostcache_ipv6_passwd-master.o...
18
B
-rw-r--r--
hostcache_ipv6_passwd.test
2.19
KB
-rw-r--r--
hostcache_ipv6_ssl-master.opt
18
B
-rw-r--r--
hostcache_ipv6_ssl.test
1.91
KB
-rw-r--r--
hostcache_peer_addr-master.opt
16
B
-rw-r--r--
hostcache_peer_addr.test
1.12
KB
-rw-r--r--
indexed_table_io.test
4.15
KB
-rw-r--r--
information_schema.test
2.12
KB
-rw-r--r--
innodb_table_io.test
794
B
-rw-r--r--
io_cache-master.opt
76
B
-rw-r--r--
io_cache.test
9.63
KB
-rw-r--r--
max_program_zero-master.opt
122
B
-rw-r--r--
max_program_zero.test
1.57
KB
-rw-r--r--
mdl_func.test
10.41
KB
-rw-r--r--
memory_aggregate-master.opt
37
B
-rw-r--r--
memory_aggregate.test
212
B
-rw-r--r--
memory_aggregate_32bit-master....
37
B
-rw-r--r--
memory_aggregate_32bit.test
212
B
-rw-r--r--
memory_aggregate_no_a-master.o...
80
B
-rw-r--r--
memory_aggregate_no_a.test
212
B
-rw-r--r--
memory_aggregate_no_a_no_h-mas...
120
B
-rw-r--r--
memory_aggregate_no_a_no_h.tes...
212
B
-rw-r--r--
memory_aggregate_no_a_no_u-mas...
120
B
-rw-r--r--
memory_aggregate_no_a_no_u.tes...
212
B
-rw-r--r--
memory_aggregate_no_a_no_u_no_...
160
B
-rw-r--r--
memory_aggregate_no_a_no_u_no_...
212
B
-rw-r--r--
memory_aggregate_no_h-master.o...
77
B
-rw-r--r--
memory_aggregate_no_h.test
212
B
-rw-r--r--
memory_aggregate_no_u-master.o...
77
B
-rw-r--r--
memory_aggregate_no_u.test
212
B
-rw-r--r--
memory_aggregate_no_u_no_h-mas...
117
B
-rw-r--r--
memory_aggregate_no_u_no_h.tes...
212
B
-rw-r--r--
memory_table_io.test
794
B
-rw-r--r--
merge_table_io.test
1.44
KB
-rw-r--r--
misc.test
7.99
KB
-rw-r--r--
misc_global_status-master.opt
40
B
-rw-r--r--
misc_global_status.test
4.32
KB
-rw-r--r--
multi_table_io.test
1.52
KB
-rw-r--r--
myisam_file_io.opt
57
B
-rw-r--r--
myisam_file_io.test
1.88
KB
-rw-r--r--
myisam_table_io.test
794
B
-rw-r--r--
nesting.test
6.29
KB
-rw-r--r--
no_threads-master.opt
148
B
-rw-r--r--
no_threads.test
1.89
KB
-rw-r--r--
one_thread_per_con-master.opt
44
B
-rw-r--r--
one_thread_per_con.test
1.71
KB
-rw-r--r--
ortho_iter.test
9.96
KB
-rw-r--r--
part_table_io.test
864
B
-rw-r--r--
pfs_upgrade_event-master.opt
37
B
-rw-r--r--
pfs_upgrade_event.test
987
B
-rw-r--r--
pfs_upgrade_func-master.opt
37
B
-rw-r--r--
pfs_upgrade_func.test
955
B
-rw-r--r--
pfs_upgrade_proc-master.opt
37
B
-rw-r--r--
pfs_upgrade_proc.test
967
B
-rw-r--r--
pfs_upgrade_table-master.opt
37
B
-rw-r--r--
pfs_upgrade_table.test
1.12
KB
-rw-r--r--
pfs_upgrade_view-master.opt
37
B
-rw-r--r--
pfs_upgrade_view.test
1.13
KB
-rw-r--r--
prepared_statements.test
4.48
KB
-rw-r--r--
prepared_stmts_by_stored_progr...
3.25
KB
-rw-r--r--
privilege.test
11.88
KB
-rw-r--r--
privilege_table_io.test
1.65
KB
-rw-r--r--
processlist-master.opt
18
B
-rw-r--r--
processlist.test
5.06
KB
-rw-r--r--
processlist_57.test
8.49
KB
-rw-r--r--
processlist_acl-master.opt
18
B
-rw-r--r--
processlist_acl.test
5.14
KB
-rw-r--r--
processlist_anonymous.test
2.38
KB
-rw-r--r--
processlist_no_pfs-master.opt
82
B
-rw-r--r--
processlist_no_pfs.test
732
B
-rw-r--r--
processlist_port-master.opt
18
B
-rw-r--r--
processlist_port.test
4.47
KB
-rw-r--r--
processlist_reg_user.test
3.13
KB
-rw-r--r--
query_cache-master.opt
21
B
-rw-r--r--
query_cache.test
1.57
KB
-rw-r--r--
read_only.test
5.88
KB
-rw-r--r--
relaylog-slave.opt
16
B
-rw-r--r--
relaylog.test
6.47
KB
-rw-r--r--
rollback_table_io.test
1.13
KB
-rw-r--r--
rpl_group_member_stats.test
2.76
KB
-rw-r--r--
rpl_group_members.test
1.62
KB
-rw-r--r--
rpl_gtid_func.test
2.39
KB
-rw-r--r--
rpl_statements-master.opt
22
B
-rw-r--r--
rpl_statements-slave.opt
22
B
-rw-r--r--
rpl_statements.test
8.79
KB
-rw-r--r--
rpl_threads-slave.opt
16
B
-rw-r--r--
rpl_threads.test
2.25
KB
-rw-r--r--
schema.test
200
B
-rw-r--r--
selects-master.opt
18
B
-rw-r--r--
selects.test
4.53
KB
-rw-r--r--
server_init.test
5.1
KB
-rw-r--r--
setup_actors.test
9.05
KB
-rw-r--r--
setup_actors_enabled.test
6.71
KB
-rw-r--r--
setup_actors_history.test
5.41
KB
-rw-r--r--
setup_consumers_defaults-maste...
913
B
-rw-r--r--
setup_consumers_defaults.test
493
B
-rw-r--r--
setup_instruments_defaults-mas...
1.79
KB
-rw-r--r--
setup_instruments_defaults.tes...
2.9
KB
-rw-r--r--
setup_object_table_lock_io.tes...
4.05
KB
-rw-r--r--
setup_objects.test
5.52
KB
-rw-r--r--
short_option_1-master.opt
50
B
-rw-r--r--
short_option_1.test
466
B
-rw-r--r--
short_option_2-master.opt
5
B
-rw-r--r--
short_option_2.test
458
B
-rw-r--r--
show_aggregate-master.opt
16
B
-rw-r--r--
show_aggregate.test
12.92
KB
-rw-r--r--
show_coverage.test
7.05
KB
-rw-r--r--
show_misc.test
3.38
KB
-rw-r--r--
show_plugin-master.opt
22
B
-rw-r--r--
show_plugin.test
17.86
KB
-rw-r--r--
show_plugin_56-master.opt
22
B
-rw-r--r--
show_plugin_56.test
16.74
KB
-rw-r--r--
show_sanity.test
101.52
KB
-rw-r--r--
socket_connect.test
8.91
KB
-rw-r--r--
socket_instances_func-master.o...
20
B
-rw-r--r--
socket_instances_func.test
12.2
KB
-rw-r--r--
socket_instances_func_win-mast...
20
B
-rw-r--r--
socket_instances_func_win.test
8.92
KB
-rw-r--r--
socket_summary_by_event_name_f...
11.98
KB
-rw-r--r--
socket_summary_by_instance_fun...
62.74
KB
-rw-r--r--
socket_summary_by_instance_fun...
62.89
KB
-rw-r--r--
stage_mdl_function.test
1.37
KB
-rw-r--r--
stage_mdl_global-master.opt
21
B
-rw-r--r--
stage_mdl_global.test
1.24
KB
-rw-r--r--
stage_mdl_procedure.test
1.63
KB
-rw-r--r--
stage_mdl_table.test
1.3
KB
-rw-r--r--
start_server_1_digest-master.o...
36
B
-rw-r--r--
start_server_1_digest.test
484
B
-rw-r--r--
start_server_disable_idle-mast...
49
B
-rw-r--r--
start_server_disable_idle.test
965
B
-rw-r--r--
start_server_disable_stages-ma...
52
B
-rw-r--r--
start_server_disable_stages.te...
841
B
-rw-r--r--
start_server_disable_statement...
56
B
-rw-r--r--
start_server_disable_statement...
873
B
-rw-r--r--
start_server_disable_transacti...
56
B
-rw-r--r--
start_server_disable_transacti...
883
B
-rw-r--r--
start_server_disable_waits-mas...
51
B
-rw-r--r--
start_server_disable_waits.tes...
978
B
-rw-r--r--
start_server_innodb-master.opt
34
B
-rw-r--r--
start_server_innodb.test
279
B
-rw-r--r--
start_server_low_digest-master...
23
B
-rw-r--r--
start_server_low_digest.test
996
B
-rw-r--r--
start_server_low_digest_sql_le...
95
B
-rw-r--r--
start_server_low_digest_sql_le...
1.02
KB
-rw-r--r--
start_server_low_index-master....
79
B
-rw-r--r--
start_server_low_index.test
6.03
KB
-rw-r--r--
start_server_low_table_lock-ma...
83
B
-rw-r--r--
start_server_low_table_lock.te...
4.02
KB
-rw-r--r--
start_server_no_account-master...
77
B
-rw-r--r--
start_server_no_account.test
472
B
-rw-r--r--
start_server_no_cond_class-mas...
80
B
-rw-r--r--
start_server_no_cond_class.tes...
702
B
-rw-r--r--
start_server_no_cond_inst-mast...
82
B
-rw-r--r--
start_server_no_cond_inst.test
767
B
-rw-r--r--
start_server_no_digests-master...
42
B
-rw-r--r--
start_server_no_digests.test
1.01
KB
-rw-r--r--
start_server_no_file_class-mas...
80
B
-rw-r--r--
start_server_no_file_class.tes...
699
B
-rw-r--r--
start_server_no_file_inst-mast...
82
B
-rw-r--r--
start_server_no_file_inst.test
764
B
-rw-r--r--
start_server_no_host-master.op...
74
B
-rw-r--r--
start_server_no_host.test
463
B
-rw-r--r--
start_server_no_index-master.o...
78
B
-rw-r--r--
start_server_no_index.test
2.07
KB
-rw-r--r--
start_server_no_mdl-master.opt
82
B
-rw-r--r--
start_server_no_mdl.test
649
B
-rw-r--r--
start_server_no_memory_class-m...
82
B
-rw-r--r--
start_server_no_memory_class.t...
755
B
-rw-r--r--
start_server_no_mutex_class-ma...
81
B
-rw-r--r--
start_server_no_mutex_class.te...
707
B
-rw-r--r--
start_server_no_mutex_inst-mas...
83
B
-rw-r--r--
start_server_no_mutex_inst.tes...
773
B
-rw-r--r--
start_server_no_prepared_stmts...
97
B
-rw-r--r--
start_server_no_prepared_stmts...
1.15
KB
-rw-r--r--
start_server_no_rwlock_class-m...
82
B
-rw-r--r--
start_server_no_rwlock_class.t...
712
B
-rw-r--r--
start_server_no_rwlock_inst-ma...
84
B
-rw-r--r--
start_server_no_rwlock_inst.te...
779
B
-rw-r--r--
start_server_no_setup_actors-m...
81
B
-rw-r--r--
start_server_no_setup_actors.t...
322
B
-rw-r--r--
start_server_no_setup_objects-...
82
B
-rw-r--r--
start_server_no_setup_objects....
326
B
-rw-r--r--
start_server_no_socket_class-m...
82
B
-rw-r--r--
start_server_no_socket_class.t...
709
B
-rw-r--r--
start_server_no_socket_inst-ma...
84
B
-rw-r--r--
start_server_no_socket_inst.te...
776
B
-rw-r--r--
start_server_no_stage_class-ma...
81
B
-rw-r--r--
start_server_no_stage_class.te...
934
B
-rw-r--r--
start_server_no_stages_history...
90
B
-rw-r--r--
start_server_no_stages_history...
396
B
-rw-r--r--
start_server_no_stages_history...
95
B
-rw-r--r--
start_server_no_stages_history...
416
B
-rw-r--r--
start_server_no_statement_clas...
85
B
-rw-r--r--
start_server_no_statement_clas...
974
B
-rw-r--r--
start_server_no_statements_his...
94
B
-rw-r--r--
start_server_no_statements_his...
408
B
-rw-r--r--
start_server_no_statements_his...
99
B
-rw-r--r--
start_server_no_statements_his...
428
B
-rw-r--r--
start_server_no_table_hdl-mast...
81
B
-rw-r--r--
start_server_no_table_hdl.test
888
B
-rw-r--r--
start_server_no_table_inst-mas...
176
B
-rw-r--r--
start_server_no_table_inst.tes...
885
B
-rw-r--r--
start_server_no_table_lock-mas...
83
B
-rw-r--r--
start_server_no_table_lock.tes...
1.65
KB
-rw-r--r--
start_server_no_thread_class-m...
82
B
-rw-r--r--
start_server_no_thread_class.t...
692
B
-rw-r--r--
start_server_no_thread_inst-ma...
84
B
-rw-r--r--
start_server_no_thread_inst.te...
784
B
-rw-r--r--
start_server_no_transactions_h...
96
B
-rw-r--r--
start_server_no_transactions_h...
414
B
-rw-r--r--
start_server_no_transactions_h...
101
B
-rw-r--r--
start_server_no_transactions_h...
434
B
-rw-r--r--
start_server_no_user-master.op...
74
B
-rw-r--r--
start_server_no_user.test
463
B
-rw-r--r--
start_server_no_waits_history-...
89
B
-rw-r--r--
start_server_no_waits_history....
393
B
-rw-r--r--
start_server_no_waits_history_...
94
B
-rw-r--r--
start_server_no_waits_history_...
413
B
-rw-r--r--
start_server_nothing-master.op...
1.78
KB
-rw-r--r--
start_server_nothing.test
3.21
KB
-rw-r--r--
start_server_off-master.opt
35
B
-rw-r--r--
start_server_off.test
2.18
KB
-rw-r--r--
start_server_on-master.opt
34
B
-rw-r--r--
start_server_on.test
246
B
-rw-r--r--
start_server_zero_digest_sql_l...
93
B
-rw-r--r--
start_server_zero_digest_sql_l...
971
B
-rw-r--r--
statement_digest.test
887
B
-rw-r--r--
statement_digest_charset.test
995
B
-rw-r--r--
statement_digest_consumers-mas...
120
B
-rw-r--r--
statement_digest_consumers.tes...
1.21
KB
-rw-r--r--
statement_digest_consumers2-ma...
120
B
-rw-r--r--
statement_digest_consumers2.te...
1.3
KB
-rw-r--r--
statement_digest_long_query-ma...
22
B
-rw-r--r--
statement_digest_long_query.te...
2.46
KB
-rw-r--r--
statement_program_concurrency-...
51
B
-rw-r--r--
statement_program_concurrency....
2.83
KB
-rw-r--r--
statement_program_lost_inst-ma...
122
B
-rw-r--r--
statement_program_lost_inst.te...
2.76
KB
-rw-r--r--
statement_program_nested-maste...
22
B
-rw-r--r--
statement_program_nested.test
2.99
KB
-rw-r--r--
statement_program_nesting_even...
22
B
-rw-r--r--
statement_program_nesting_even...
1.71
KB
-rw-r--r--
statement_program_non_nested-m...
22
B
-rw-r--r--
statement_program_non_nested.t...
4.73
KB
-rw-r--r--
status_reprepare.test
1.99
KB
-rw-r--r--
sxlock_func.test
2.48
KB
-rw-r--r--
table_aggregate_global_2u_2t.t...
495
B
-rw-r--r--
table_aggregate_global_2u_3t.t...
435
B
-rw-r--r--
table_aggregate_global_4u_2t.t...
426
B
-rw-r--r--
table_aggregate_global_4u_3t.t...
366
B
-rw-r--r--
table_aggregate_hist_2u_2t.tes...
406
B
-rw-r--r--
table_aggregate_hist_2u_3t.tes...
346
B
-rw-r--r--
table_aggregate_hist_4u_2t.tes...
337
B
-rw-r--r--
table_aggregate_hist_4u_3t.tes...
277
B
-rw-r--r--
table_aggregate_off.test
320
B
-rw-r--r--
table_aggregate_thread_2u_2t.t...
484
B
-rw-r--r--
table_aggregate_thread_2u_3t.t...
424
B
-rw-r--r--
table_aggregate_thread_4u_2t.t...
415
B
-rw-r--r--
table_aggregate_thread_4u_3t.t...
355
B
-rw-r--r--
table_io_aggregate_global_2u_2...
574
B
-rw-r--r--
table_io_aggregate_global_2u_3...
514
B
-rw-r--r--
table_io_aggregate_global_4u_2...
505
B
-rw-r--r--
table_io_aggregate_global_4u_3...
445
B
-rw-r--r--
table_io_aggregate_hist_2u_2t....
485
B
-rw-r--r--
table_io_aggregate_hist_2u_3t....
425
B
-rw-r--r--
table_io_aggregate_hist_4u_2t....
416
B
-rw-r--r--
table_io_aggregate_hist_4u_3t....
356
B
-rw-r--r--
table_io_aggregate_thread_2u_2...
563
B
-rw-r--r--
table_io_aggregate_thread_2u_3...
503
B
-rw-r--r--
table_io_aggregate_thread_4u_2...
494
B
-rw-r--r--
table_io_aggregate_thread_4u_3...
434
B
-rw-r--r--
table_lock_aggregate_global_2u...
674
B
-rw-r--r--
table_lock_aggregate_global_2u...
614
B
-rw-r--r--
table_lock_aggregate_global_4u...
605
B
-rw-r--r--
table_lock_aggregate_global_4u...
545
B
-rw-r--r--
table_lock_aggregate_hist_2u_2...
585
B
-rw-r--r--
table_lock_aggregate_hist_2u_3...
525
B
-rw-r--r--
table_lock_aggregate_hist_4u_2...
516
B
-rw-r--r--
table_lock_aggregate_hist_4u_3...
456
B
-rw-r--r--
table_lock_aggregate_thread_2u...
663
B
-rw-r--r--
table_lock_aggregate_thread_2u...
603
B
-rw-r--r--
table_lock_aggregate_thread_4u...
594
B
-rw-r--r--
table_lock_aggregate_thread_4u...
534
B
-rw-r--r--
table_name.test
5.45
KB
-rw-r--r--
table_schema.test
2.05
KB
-rw-r--r--
tampered_perfschema_table1-mas...
44
B
-rw-r--r--
tampered_perfschema_table1.tes...
776
B
-rw-r--r--
temp_table_io.test
826
B
-rw-r--r--
thread_cache-master.opt
48
B
-rw-r--r--
thread_cache.test
4.43
KB
-rw-r--r--
thread_misc-master.opt
61
B
-rw-r--r--
thread_misc.test
263
B
-rw-r--r--
threads_history.test
26.93
KB
-rw-r--r--
threads_innodb.test
898
B
-rw-r--r--
threads_mysql-master.opt
40
B
-rw-r--r--
threads_mysql.test
4.56
KB
-rw-r--r--
threads_mysql_freebsd.test
723
B
-rw-r--r--
threads_mysql_linux.test
719
B
-rw-r--r--
threads_mysql_windows.test
723
B
-rw-r--r--
transaction-master.opt
84
B
-rw-r--r--
transaction.test
25.95
KB
-rw-r--r--
transaction_gtid.test
6.1
KB
-rw-r--r--
transaction_nested_events-mast...
1.05
KB
-rw-r--r--
transaction_nested_events.test
10.58
KB
-rw-r--r--
trigger_table_io.test
1.92
KB
-rw-r--r--
unary_digest.test
3.32
KB
-rw-r--r--
user_var_func.test
2.47
KB
-rw-r--r--
view_table_io.test
1.25
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : socket_summary_by_instance_func_win.test
# Some functional checks for the content of the performance_schema table # socket_summary_by_instance. # # Created: mleich 2011-07-01 # # Rough description of "What is when tested" # 1. Impact of successful connect # A new row with EVENT_NAME "client_connection" shows up # is tested in 0 and 4.5. # 2. Impact of disconnect # A row with EVENT_NAME "client_connection" disappears # is tested in 0. and 2. # 3. Disabling the instrumentation for some thread causes that the # counter for this thread become static is tested in 4.3. # Nearby the beginning of this test and somewhere in the middle. # 4. TRUNCATE table resets the counters is tested in 5. # 5. Consistency within a row like MIN_* <= AVG_* <= MAX_* # -> include/socket_summary_check.inc which is called at # various places # 6. Consistency of the instances mentioned in socket_summary_by_event # and socket_summary_by_instance is checked per call of # include/socket_summary_check.inc # 7. Check if changes in counters of instances caused by actions # are reasonable is tested for # - Connects+SQL statements in 4.1 and 4.2 # - SQL statements in 4.4 # - Connects in 4.5 # # Embedded server does not support the performance_schema. --source include/not_embedded.inc # Windows platforms only --source include/windows.inc --source include/have_perfschema.inc # The values in the performance_schema tables depend on how much communication # happens per SQL statement within our MTR tests. And there is a significant # difference between standard statement execution and execution via # prepared statement. --source include/no_protocol.inc #=================================== # Set IP address defaults with respect to IPV6 support # # Set this to enable debugging output let $my_socket_debug= 0; # # Determine if IPV6 supported # let $check_ipv6_just_check= 1; --source include/check_ipv6.inc # # Determine if IPV4 mapped to IPV6 supported # let $check_ipv4_mapped_just_check= 1; --source include/check_ipv4_mapped.inc # # Set the localhost IP default to use when establishing connections let $my_localhost=127.0.0.1; if($check_ipv6_supported) { let $my_localhost=::1; } if($check_ipv4_mapped_supported) { let $my_localhost=::ffff:127.0.0.1; } # let $my_socket_debug= 0; if($my_socket_debug) { --echo IPV6=$check_ipv6_supported, IPV4_MAPPED = $check_ipv4_mapped_supported, LOCALHOST = $my_localhost } #=================================== --echo # The logging of commands and result sets is mostly disabled. --echo # There are some messages which help to observe the progress of the test. --echo # In case some check fails --echo # - a message about this will be printed --echo # - some SQL commands which show the unexpected state will be executed --echo # (logging enabled) --echo # - the test might abort --echo # --disable_query_log --echo # 0. Check, build or set prequisites #========================================== # Set $print_details to 1 in case you want that the exact diffs caused # by the execution of a statement get printed. # Disadvantage of printing details: # Even minor legimitate changes of the client - server communication can # cause that the test needs maintenance. # Advantage: # More thorough checks. # If any of the checks detects some suspicious/unexpected state than # $print_details will be automatically switched to 1. # let $print_details= 0; # # Number of attempts within the test checking the stability of counter changes. # let $loop_rounds= 10; # This test of PERFORMANCE_SCHEMA functionality is very vulnerable. # Ensure that we have in the moment exact one # - connection # - instance with EVENT_NAME LIKE '%client_connection' # - instance with EVENT_NAME LIKE '%server_tcpip_socket' # - instance with EVENT_NAME LIKE '%server_unix_socket' #======================================================= let $my_rules= COUNT(*) = 1; let $part= FROM performance_schema.threads WHERE NAME LIKE '%one_connection'; let $wait_condition= SELECT $my_rules $part; let $wait_timeout= 5; --source include/wait_condition.inc if(!$success) { --echo # ERROR: There must be only one user connection eval SELECT * $part; --echo # abort die; } let $part= FROM performance_schema.socket_summary_by_instance WHERE EVENT_NAME LIKE '%client_connection'; let $wait_condition= SELECT $my_rules $part; let $wait_timeout= 5; --source include/wait_condition.inc if(!$success) { --echo # ERROR: There must be only one instance with this EVENT_NAME. eval SELECT * $part; --echo # abort die; } # DISABLED FOR WINDOWS let $part= FROM performance_schema.socket_summary_by_instance WHERE EVENT_NAME LIKE '%server_unix_socket'; let $wait_condition= SELECT $my_rules $part; let $wait_timeout= 5; #--source include/wait_condition.inc #if(!$success) #{ # --echo # ERROR: There must be only one instance with this EVENT_NAME. # eval # SELECT * $part; # --echo # abort # die; #} let $part= FROM performance_schema.socket_summary_by_instance WHERE EVENT_NAME LIKE '%server_tcpip_socket'; let $wait_condition= SELECT $my_rules $part; let $wait_timeout= 5; --source include/wait_condition.inc if(!$success) { --echo # ERROR: There must be only one instance with this EVENT_NAME. eval SELECT * $part; --echo # abort die; } --disable_query_log # # Lower the resolution of the wait timer from the default 'CYCLE' # to 'NANOSECOND'. # Hint: The timer columns contains values in picoseconds independent # of the timer resolution. # The timer resolution has an impact on the precision of the value. # This should prevent the failures seen on some suspicious PB boxes where # - calculations exceeded the BIGINT UNSIGNED (data type of the counter columns) # value range. # - we have reached from whatever reason 20 digit values # The consequence for the current test is the following: # The common sense rule # In case COUNT_<A> increases than SUM_TIMER_<A> must also increase # is no more valid because some action might need less time than the # timer resolution. # let $wait_timer= `SELECT TIMER_NAME FROM performance_schema.setup_timers WHERE NAME = 'wait'`; UPDATE performance_schema.setup_timers SET TIMER_NAME = 'NANOSECOND' WHERE NAME = 'wait'; # # Additional SCHEMA used for # - detection of our "worker" session within the PROCESSLIST. # No other connection should use this schema as default schema. # - easy cleanup because auxiliary objects are stored there # CREATE SCHEMA mysqltest; CREATE SCHEMA mysqlsupertest; # # Clear summary tables of previous entries # TRUNCATE performance_schema.socket_summary_by_instance; TRUNCATE performance_schema.socket_summary_by_event_name; # Disable instrumenting of the current default session. # Required for check 1.1 UPDATE performance_schema.threads SET INSTRUMENTED='NO' WHERE PROCESSLIST_ID = CONNECTION_ID(); # # Auxiliary tables for storing current values at certain points of time. # We store states of performance_schema.socket_summary_by_instance here # in order # - to have initial values from before some action # - to minimize the impact of statements used for the checks on results. # CREATE TEMPORARY TABLE my_socket_summary_by_instance AS # would be nice but some statements are not supported for temporary tables. # # DECIMAL(60,0) is used instead of BIGINT UNSIGNED. The goal is to prevent # errors during calculations # Example: # - A and B UNSIGNED BIGINT # - A < B # - A - B ---> Error # though the columns in all queries are orderd to avoid this too. # CREATE TABLE mysqltest.my_socket_summary_by_instance ( EVENT_NAME varchar(128) NOT NULL, OBJECT_INSTANCE_BEGIN bigint(20) unsigned NOT NULL, COUNT_STAR DECIMAL(60,0) NOT NULL, SUM_TIMER_WAIT DECIMAL(60,0) NOT NULL, MIN_TIMER_WAIT DECIMAL(60,0) NOT NULL, AVG_TIMER_WAIT DECIMAL(60,0) NOT NULL, MAX_TIMER_WAIT DECIMAL(60,0) NOT NULL, COUNT_READ DECIMAL(60,0) NOT NULL, SUM_TIMER_READ DECIMAL(60,0) NOT NULL, MIN_TIMER_READ DECIMAL(60,0) NOT NULL, AVG_TIMER_READ DECIMAL(60,0) NOT NULL, MAX_TIMER_READ DECIMAL(60,0) NOT NULL, SUM_NUMBER_OF_BYTES_READ DECIMAL(60,0) NOT NULL, COUNT_WRITE DECIMAL(60,0) NOT NULL, SUM_TIMER_WRITE DECIMAL(60,0) NOT NULL, MIN_TIMER_WRITE DECIMAL(60,0) NOT NULL, AVG_TIMER_WRITE DECIMAL(60,0) NOT NULL, MAX_TIMER_WRITE DECIMAL(60,0) NOT NULL, SUM_NUMBER_OF_BYTES_WRITE DECIMAL(60,0) NOT NULL, COUNT_MISC DECIMAL(60,0) NOT NULL, SUM_TIMER_MISC DECIMAL(60,0) NOT NULL, MIN_TIMER_MISC DECIMAL(60,0) NOT NULL, AVG_TIMER_MISC DECIMAL(60,0) NOT NULL, MAX_TIMER_MISC DECIMAL(60,0) NOT NULL, pk VARCHAR(20), PRIMARY KEY(pk, EVENT_NAME, OBJECT_INSTANCE_BEGIN) ) DEFAULT CHARSET=utf8; # The CAST(... AS DECIMAL(60,0)) prevents errors which might show up in case # we run with the original data type UNSIGNED BIGINT. CREATE TABLE mysqltest.socket_summary_by_instance_detail ( EVENT_NAME varchar(128) NOT NULL, OBJECT_INSTANCE_BEGIN bigint(20) unsigned NOT NULL, COUNT_READ DECIMAL(60,0) NOT NULL, SUM_TIMER_READ DECIMAL(60,0) NOT NULL, SUM_NUMBER_OF_BYTES_READ DECIMAL(60,0) NOT NULL, COUNT_WRITE DECIMAL(60,0) NOT NULL, SUM_TIMER_WRITE DECIMAL(60,0) NOT NULL, SUM_NUMBER_OF_BYTES_WRITE DECIMAL(60,0) NOT NULL, COUNT_MISC DECIMAL(60,0) NOT NULL, SUM_TIMER_MISC DECIMAL(60,0) NOT NULL, statement VARCHAR(500), run INTEGER ) DEFAULT CHARSET=utf8; # # Auxiliary SQL functions used to shorten some commands. # CREATE FUNCTION mysqltest.min_of_triple (f1 DECIMAL(60,0), f2 DECIMAL(60,0), f3 DECIMAL(60,0)) RETURNS DECIMAL(60,0) RETURN IF(IF(f1 < f2,f1,f2) < f3,IF(f1 < f2,f1,f2), f3); CREATE FUNCTION mysqltest.max_of_triple (f1 DECIMAL(60,0), f2 DECIMAL(60,0), f3 DECIMAL(60,0)) RETURNS DECIMAL(60,0) RETURN IF(IF(f1 > f2,f1,f2) > f3,IF(f1 > f2,f1,f2), f3); # # Auxiliary table for experiments with SELECTs earning different result sets. # CREATE TABLE mysqltest.my_aux (col1 INTEGER, col2 VARCHAR(1024), PRIMARY KEY(col1)); INSERT INTO mysqltest.my_aux SET col1 = 0, col2 = REPEAT('a',0); INSERT INTO mysqltest.my_aux SET col1 = 1, col2 = REPEAT('a',0); INSERT INTO mysqltest.my_aux SET col1 = 2, col2 = REPEAT('a',1); INSERT INTO mysqltest.my_aux SET col1 = 3, col2 = REPEAT('a',1024); # # Auxiliary mysqltest variables used to shorten commands and to ensure # that we run all time the right operation. # let $truncate= TRUNCATE TABLE mysqltest.my_socket_summary_by_instance; # let $insert_before= INSERT INTO mysqltest.my_socket_summary_by_instance SELECT *,'Before' FROM performance_schema.socket_summary_by_instance; # let $insert_after= INSERT INTO mysqltest.my_socket_summary_by_instance SELECT *,'After' FROM performance_schema.socket_summary_by_instance; # let $insert_pseudo_before= INSERT INTO mysqltest.my_socket_summary_by_instance (EVENT_NAME, OBJECT_INSTANCE_BEGIN, COUNT_STAR, SUM_TIMER_WAIT, MIN_TIMER_WAIT, AVG_TIMER_WAIT, MAX_TIMER_WAIT, COUNT_READ, SUM_TIMER_READ, MIN_TIMER_READ, AVG_TIMER_READ, MAX_TIMER_READ, SUM_NUMBER_OF_BYTES_READ, COUNT_WRITE, SUM_TIMER_WRITE, MIN_TIMER_WRITE, AVG_TIMER_WRITE, MAX_TIMER_WRITE, SUM_NUMBER_OF_BYTES_WRITE, COUNT_MISC, SUM_TIMER_MISC, MIN_TIMER_MISC, AVG_TIMER_MISC, MAX_TIMER_MISC, pk) SELECT EVENT_NAME, OBJECT_INSTANCE_BEGIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Pseudo_Before' FROM mysqltest.my_socket_summary_by_instance t1 WHERE OBJECT_INSTANCE_BEGIN NOT IN (SELECT OBJECT_INSTANCE_BEGIN FROM mysqltest.my_socket_summary_by_instance t2 WHERE pk = 'Before'); # let $insert_delta= INSERT INTO mysqltest.socket_summary_by_instance_detail (EVENT_NAME,OBJECT_INSTANCE_BEGIN, COUNT_READ, SUM_TIMER_READ, SUM_NUMBER_OF_BYTES_READ, COUNT_WRITE,SUM_TIMER_WRITE,SUM_NUMBER_OF_BYTES_WRITE, COUNT_MISC, SUM_TIMER_MISC, statement,run) SELECT EVENT_NAME,OBJECT_INSTANCE_BEGIN, t1.COUNT_READ - t2.COUNT_READ, t1.SUM_TIMER_READ - t2.SUM_TIMER_READ, t1.SUM_NUMBER_OF_BYTES_READ - t2.SUM_NUMBER_OF_BYTES_READ, t1.COUNT_WRITE - t2.COUNT_WRITE, t1.SUM_TIMER_WRITE - t2.SUM_TIMER_WRITE, t1.SUM_NUMBER_OF_BYTES_WRITE - t2.SUM_NUMBER_OF_BYTES_WRITE, t1.COUNT_MISC - t2.COUNT_MISC, t1.SUM_TIMER_MISC - t2.SUM_TIMER_MISC, NULL,NULL FROM mysqltest.my_socket_summary_by_instance t1 JOIN mysqltest.my_socket_summary_by_instance t2 USING (EVENT_NAME,OBJECT_INSTANCE_BEGIN) WHERE t1.pk = 'After' AND t2.pk LIKE '%Before'; # let $get_object_instance_begin= SELECT OBJECT_INSTANCE_BEGIN INTO @con1_object_instance_begin FROM performance_schema.socket_summary_by_instance AS t1 WHERE (EVENT_NAME,OBJECT_INSTANCE_BEGIN) NOT IN (SELECT EVENT_NAME,OBJECT_INSTANCE_BEGIN FROM mysqltest.my_socket_summary_by_instance AS t2 WHERE pk = 'Before'); # Use this whenever you print data. let $column_list= RPAD(EVENT_NAME, 38, ' ') AS EVENT_NAME, LPAD(OBJECT_INSTANCE_BEGIN, 20, ' ') AS OBJECT_INSTANCE, LPAD(COUNT_READ, 7, ' ') AS CREAD, LPAD(SUM_TIMER_READ, 12, ' ') AS TREAD, LPAD(SUM_NUMBER_OF_BYTES_READ, 7, ' ') AS BREAD, LPAD(COUNT_WRITE, 7, ' ') AS CWRITE, LPAD(SUM_TIMER_WRITE, 12, ' ') AS TWRITE, LPAD(SUM_NUMBER_OF_BYTES_WRITE, 7, ' ') AS BWRITE, LPAD(COUNT_MISC, 7, ' ') AS CMISC, LPAD(SUM_TIMER_MISC, 13, ' ') AS TMISC, RPAD(STATEMENT, 50, ' ') AS STATEMENT, LPAD(RUN, 5, ' ') AS RUN; # Determine OBJECT_INSTANCE_BEGIN of the connection default # which acts as the observer eval $truncate; eval $insert_before; --disconnect default --connect (default,localhost,root,,,,) # --echo ########### Disconnect/Connect # --enable_query_log eval $insert_after; eval $get_object_instance_begin; SET @default_object_instance_begin = @con1_object_instance_begin; # Wait till the old default connection has disappeared let $wait_timeout= 5; let $wait_condition= SELECT COUNT(*) = 1 FROM performance_schema.threads WHERE processlist_user = 'root'; --source include/wait_condition.inc --enable_query_log if (!$success) { --enable_query_log --enable_result_log --echo # Error: The disconnect of the old default connection --echo # (user = 'root') failed. We expect to have only one connection --echo # with user = 'root'. And this is our current connection. SELECT * FROM performance_schema.threads WHERE processlist_user = 'root'; --echo # abort die; } # Disable instrumenting of the current default session. # Required for check 1.2 UPDATE performance_schema.threads SET INSTRUMENTED='NO' WHERE PROCESSLIST_ID = CONNECTION_ID(); --echo # 1. Basic checks --echo # 1.1 Check that the entry of the disconnected old default session really --echo # disappeared from performance_schema.socket_summary_by_instance. #=============================================================================== # This failed at some point in history when the instrumenting for the # session to be disconnected was disabled. if(`SELECT COUNT(*) FROM performance_schema.socket_summary_by_instance WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND EVENT_NAME LIKE '%client_connection'`) { --enable_query_log --enable_result_log --echo # Error: The disconnected old default session did not disappear from --echo # socket_summary_by_instance. SELECT * FROM performance_schema.socket_summary_by_instance WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND EVENT_NAME LIKE '%client_connection'; } TRUNCATE TABLE performance_schema.socket_summary_by_instance; --echo # 1.2 Check the base line #=============================== eval $truncate; --source ../include/socket_summary_check.inc # --disable_query_log # --disable_query_log --echo # 2. Variations on Connect let $is_connect= 1; --echo # 2.1 Connect fails because the user is unknown --echo # length of user name = 4 character --echo # length of default db = 9 character #======================================================================== let $connect_host= localhost; let $connect_db= mysqltest; let $connect_user= boot; --source ../include/socket_event.inc --echo # 2.2 Connect fails because the user is unknown --echo # length of user name = 14 character (10 more than in 2.1) --echo # length of default db = 9 character #======================================================================== let $connect_host= localhost; let $connect_db= mysqltest; let $connect_user= boot0123456789; --source ../include/socket_event.inc --echo # 2.3 Connect should pass, host = localhost --echo # length of user name = 4 character --echo # length of default db = 9 character #======================================================================== let $connect_host= localhost; let $connect_db= mysqltest; let $connect_user= root; --source ../include/socket_event.inc --echo # 2.4 Connect should pass, host = localhost --echo # length of user name = 4 character --echo # length of default db = 14 character (5 more than 2.3) #======================================================================== let $connect_host= localhost; let $connect_db= mysqlsupertest; let $connect_user= root; --source ../include/socket_event.inc --echo # 2.5 Connect should pass, host = localhost --echo # length of user name = 10 character --echo # length of default db = 9 character #======================================================================== SET @orig_sql_mode= @@sql_mode; SET sql_mode= (SELECT replace(@@sql_mode,'NO_AUTO_CREATE_USER','')); GRANT ALL PRIVILEGES ON *.* TO 'root012345'@'localhost'; SET sql_mode= @orig_sql_mode; let $connect_host= localhost; let $connect_db= mysqltest; let $connect_user= root012345; --source ../include/socket_event.inc DROP USER 'root012345'@'localhost'; --echo # 2.6 Connect should pass, host = localhost --echo # length of user name = 14 character --echo # length of default db = 9 character #======================================================================== SET @orig_sql_mode= @@sql_mode; SET sql_mode= (SELECT replace(@@sql_mode,'NO_AUTO_CREATE_USER','')); GRANT ALL PRIVILEGES ON *.* to 'root0123456789'@'localhost'; SET sql_mode= @orig_sql_mode; let $connect_host= localhost; let $connect_db= mysqltest; let $connect_user= root0123456789; --source ../include/socket_event.inc DROP USER 'root0123456789'@'localhost'; --echo # 2.7 Connect should pass, host = my_localhost --echo # length of user name = 4 character --echo # length of default db = 9 character --echo # connection runs through server_tcpip_socket ! #======================================================================== let $connect_host= $my_localhost; let $connect_db= mysqltest; let $connect_user= root; --source ../include/socket_event.inc #======================================================================== --connect (con1,localhost,root,,mysqltest,,) # Experiments showed some unexpected result in the counter difference # which got con1 for the next statement (see 3.1). # The measured diff was too high and was probably caused by some # too much delayed counter maintenance for the connect. # We run here just some SQL statement because counter maintenance # for SQL statements is more fast and reliable than far Connect. DO 1; --connection default --source ../include/wait_till_sleep.inc --disable_query_log --echo # 3 Variations on SELECT # Attention: Don't use # - any double quotes within the statements because sourced scripts # already "decorate" $variables with double quotes # - UNION because this leads to result set related byte write # counters which cannot good compared to select without union let $is_connect= 0; eval $get_object_instance_begin; --echo # 3.1 Check a SELECT ending with server sending an error message. --echo # Error message is short (unknown table). #======================================================================== let $statement= SELECT col2 FROM does_not_exist; --source ../include/socket_event.inc --echo # 3.2 SELECT ending with server sending an error message. --echo # Now the statement is a bit longer but the error message --echo # length does again not depend on statement. #======================================================================= let $statement= SELECT col2 FROM does_not_exist WHERE col1 = 0; --source ../include/socket_event.inc --echo # 3.3 SELECT ending with server sending an error message. --echo # The statement has the same length like in 3.2 but the error --echo # message is now different and much longer. #======================================================================= let $statement= SELECT col2 FROM does_not_exist WHERE col1 A 0; --source ../include/socket_event.inc --echo # 3.4 SELECT ending with server sending an error message. --echo # Statement and error message are a bit longer than in 3.1 --echo # because the table name is longer. #======================================================================= let $statement= SELECT col2 FROM does_not_exist0123; --source ../include/socket_event.inc --echo # 3.5 SELECT earning an empty result set. #======================================================= let $statement= SELECT col2 FROM mysqltest.my_aux WHERE col1 = -1; --source ../include/socket_event.inc --echo # 3.6 SELECT earning an empty result set. --echo # Short column name is replaced by longer alias. #========================================================== let $statement= SELECT col2 AS my_super_col FROM mysqltest.my_aux WHERE col1 = -1; --source ../include/socket_event.inc --echo # 3.7 SELECT earning one row with an empty string. #================================================================ let $statement= SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1; --source ../include/socket_event.inc --echo # 3.8 SELECT earning one row with one string one char long. #========================================================================= let $statement= SELECT col2 FROM mysqltest.my_aux WHERE col1 = 2; --source ../include/socket_event.inc --echo # 3.9 SELECT earning one row with one string 1024 char long. #========================================================================== let $statement= SELECT col2 FROM mysqltest.my_aux WHERE col1 = 3; --source ../include/socket_event.inc --echo # 3.10 SELECT earning two rows with an empty string #========================================================================== let $statement= SELECT col2 FROM mysqltest.my_aux WHERE col1 < 2; --source ../include/socket_event.inc --echo # 3.11 Check that the preceding Connects/SQL command runs have not --echo # caused some unexpected state. #========================================================================== let $my_rules= COUNT(*) = 2; let $part= FROM performance_schema.threads WHERE NAME LIKE '%one_connection'; if(`SELECT NOT ( $my_rules ) $part `) { --echo # ERROR: There must be only two user connections eval SELECT * $part; --echo # abort die; } let $part= FROM performance_schema.socket_summary_by_instance WHERE EVENT_NAME LIKE '%client_connection'; if(`SELECT NOT ( $my_rules ) $part `) { --echo # ERROR: There must be only two instances with this EVENT_NAME. eval SELECT * $part; --echo # abort die; } let $my_rules= COUNT(*) = 1; let $part= FROM performance_schema.socket_summary_by_instance WHERE EVENT_NAME LIKE '%server_unix_socket'; #DISABLED FOR WINDOWS #if(`SELECT NOT ( $my_rules ) $part `) if (0) { --echo # ERROR: There must be only one instance with this EVENT_NAME. eval SELECT * $part; --echo # abort die; } let $part= FROM performance_schema.socket_summary_by_instance WHERE EVENT_NAME LIKE '%server_tcpip_socket'; if(`SELECT NOT ( $my_rules ) $part `) { --echo # ERROR: There must be only one instance with this EVENT_NAME. eval SELECT * $part; --echo # abort die; } --echo # 4. Check delta (value_after_action - value_before_action) details # 4.0 . Negative deltas cannot have happened because the counter columns within # socket_summary_by_instance_detail are defined as UNSIGNED BIGINT. # = The INSERT which computes the diff would have been failed. --echo # 4.1 Check that --echo # - no change in COUNT_* leads to no change in --echo # SUM_TIMER_* and no change in SUM_NUMBER_OF_BYTES_* --echo # - increased COUNT_READ leads to increased --echo # SUM_NUMBER_OF_BYTES_READ --echo # - increased COUNT_WRITE leads to increased --echo # SUM_NUMBER_OF_BYTES_WRITE --echo # Attention: --echo # The time required for some action might be below timer resolution. --echo # Therefore some increased COUNT_* does not need to lead to an --echo # increased SUM_TIMER_*. #========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info UPDATE mysqltest.socket_summary_by_instance_detail SET SUM_TIMER_MISC = 13, COUNT_MISC = 0 WHERE statement LIKE '%WHERE col1 = 3' AND EVENT_NAME LIKE '%client_connection' AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin LIMIT 1; --disable_info } let $my_rules= ((COUNT_READ = 0 AND SUM_TIMER_READ = 0 AND SUM_NUMBER_OF_BYTES_READ = 0) OR (COUNT_READ > 0 AND SUM_NUMBER_OF_BYTES_READ > 0)) AND ((COUNT_WRITE = 0 AND SUM_TIMER_WRITE = 0 AND SUM_NUMBER_OF_BYTES_WRITE = 0) OR (COUNT_WRITE > 0 AND SUM_NUMBER_OF_BYTES_WRITE > 0)) AND ((COUNT_MISC = 0 AND SUM_TIMER_MISC = 0) OR (COUNT_MISC > 0)); if(`SELECT COUNT(*) FROM mysqltest.socket_summary_by_instance_detail WHERE NOT ( $my_rules ) `) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval SELECT $column_list FROM mysqltest.socket_summary_by_instance_detail WHERE NOT ( $my_rules ) ORDER BY EVENT_NAME, OBJECT_INSTANCE, STATEMENT, RUN; let $print_details= 1; } --echo # 4.2 Results must be stable #========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info UPDATE mysqltest.socket_summary_by_instance_detail SET COUNT_WRITE = 13 WHERE statement LIKE '%WHERE col1 = 3' AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND EVENT_NAME LIKE '%client_connection' LIMIT 1; --disable_info } # eval # SELECT # $column_list # FROM mysqltest.socket_summary_by_instance_detail # WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin # ORDER BY EVENT_NAME, statement,run; # In case we are able to wait all time till perfschema has finished the # maintenance of counters than the following must be valid. let $my_rules= COUNT(DISTINCT SUM_NUMBER_OF_BYTES_READ) = 1 AND COUNT(DISTINCT COUNT_WRITE) = 1 AND COUNT(DISTINCT SUM_NUMBER_OF_BYTES_WRITE) = 1; # In case we do not get the results somehow deterministic than we # we should go with the less strict check based on CV. # # Compute coefficient of variation (CV) to detect 'notable' variances in the # byte count and operation counts. The acceptable range for the CV is purely # subjective, however, the CV is a dimensionless quantity therefore valid # across platforms. # let $my_rules= # STD(COUNT_READ)/AVG(COUNT_READ) <= 0.2 AND # STD(SUM_NUMBER_OF_BYTES_READ)/AVG(SUM_NUMBER_OF_BYTES_READ) <= 0.2 AND # STD(COUNT_WRITE)/AVG(COUNT_WRITE) <= 0.2 AND # STD(SUM_NUMBER_OF_BYTES_WRITE)/AVG(SUM_NUMBER_OF_BYTES_WRITE) <= 0.2 AND # STD(COUNT_MISC)/AVG(COUNT_MISC) <= 0.4; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin GROUP BY EVENT_NAME, statement HAVING NOT ($my_rules) ; if(`SELECT COUNT(statement) $part`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # for GROUP BY EVENT_NAME, statement eval SELECT $column_list FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND (EVENT_NAME, statement) IN (SELECT EVENT_NAME, statement $part) ORDER BY EVENT_NAME, statement, run, OBJECT_INSTANCE_BEGIN; let $print_details= 1; } --echo # 4.3 Counters must be 0 in client_connection for the default session --echo # Instrumenting is disabled since a long time and the counter were --echo # reset via TRUNCATE just after the disabling. #========================================================================== let $my_rules= COUNT_STAR = 0 AND SUM_TIMER_WAIT = 0 AND COUNT_READ = 0 AND SUM_TIMER_READ = 0 AND SUM_NUMBER_OF_BYTES_READ = 0 AND COUNT_WRITE = 0 AND SUM_TIMER_WRITE = 0 AND SUM_NUMBER_OF_BYTES_WRITE = 0 AND COUNT_MISC = 0 AND SUM_TIMER_MISC = 0; if(`SELECT COUNT(*) FROM performance_schema.socket_summary_by_instance WHERE NOT ( $my_rules ) AND OBJECT_INSTANCE_BEGIN = @default_object_instance_begin`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # # Attention: We use here performance_schema.socket_summary_by_instance # and not mysqltest.socket_summary_by_instance_detail. # Therefore the convenient $column_list cannot be used. eval SELECT COUNT_STAR, SUM_TIMER_WAIT, COUNT_READ,SUM_TIMER_READ,SUM_NUMBER_OF_BYTES_READ, COUNT_WRITE,SUM_TIMER_WRITE,SUM_NUMBER_OF_BYTES_WRITE, COUNT_MISC,SUM_TIMER_MISC FROM performance_schema.socket_summary_by_instance WHERE OBJECT_INSTANCE_BEGIN = @default_object_instance_begin; let $print_details= 1; } #--------------------------------------------------------------------------- --echo # 4.4 Check the differences caused by SQL statements --echo # 4.4.1 There must be no changes in counters of instances --echo # NOT LIKE '%client_connection' because everything gets charged --echo # into client_connection of the acting connection. #=========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info UPDATE mysqltest.socket_summary_by_instance_detail SET COUNT_WRITE = 13 WHERE statement LIKE '%WHERE col1 = 3' AND EVENT_NAME NOT LIKE '%client_connection' LIMIT 1; --disable_info } let $my_rules= COUNT_READ = 0 AND SUM_TIMER_READ = 0 AND SUM_NUMBER_OF_BYTES_READ = 0 AND COUNT_WRITE = 0 AND SUM_TIMER_WRITE = 0 AND SUM_NUMBER_OF_BYTES_WRITE = 0 AND COUNT_MISC = 0 AND SUM_TIMER_MISC = 0; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE NOT ( $my_rules ) AND EVENT_NAME NOT LIKE '%client_connection' AND statement NOT LIKE 'Connect%'; if(`SELECT COUNT(*) $part`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval SELECT $column_list $part ORDER BY EVENT_NAME, OBJECT_INSTANCE_BEGIN, statement, run; let $print_details= 1; } --echo # 4.4.2 In case of SELECT and our scenarios even COUNT_READ and COUNT_MISC --echo # are stable. #=========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info UPDATE mysqltest.socket_summary_by_instance_detail SET COUNT_READ = 13 WHERE statement LIKE '%WHERE col1 = 3' LIMIT 1; --disable_info } let $my_rules= COUNT(DISTINCT COUNT_READ) = 1 AND COUNT(DISTINCT COUNT_MISC) = 1; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement NOT LIKE '%Connect%' GROUP BY EVENT_NAME, statement HAVING NOT ($my_rules) ; if(`SELECT COUNT(statement) $part`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # for GROUP BY EVENT_NAME, statement eval SELECT $column_list FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND (EVENT_NAME, statement) IN (SELECT EVENT_NAME, statement $part) ORDER BY EVENT_NAME, statement, run, OBJECT_INSTANCE_BEGIN; let $print_details= 1; } --echo # 4.4.3 In our testing scenarios we get for the client_connection entry --echo # of the acting connection --echo # -> OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin --echo # COUNT_MISC = 0 AND SUM_TIMER_MISC = 0 --echo # SKIPPED FOR WINDOWS #=========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info UPDATE mysqltest.socket_summary_by_instance_detail SET COUNT_MISC = 13 WHERE statement LIKE '%WHERE col1 = 3' AND EVENT_NAME LIKE '%client_connection' AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin LIMIT 1; --disable_info } let $my_rules= COUNT_MISC = 0 AND SUM_TIMER_MISC = 0; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE NOT ( $my_rules ) AND EVENT_NAME LIKE '%client_connection' AND statement NOT LIKE 'Connect%' AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin; #if(`SELECT COUNT(*) $part`) if (0) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval SELECT $column_list $part ORDER BY EVENT_NAME, OBJECT_INSTANCE_BEGIN, statement, run; let $print_details= 1; } # Initialize variables let $my_rules= my_rules_not_set; let $stmt1= stmt1_not_set; let $stmt2= stmt2_not_set; # $title_prefix is used for the generation of titles let $title_prefix= 4.4; # $check_num is used for the generation of titles and gets incremented after # every call of the current script. let $check_num= 4; # $column_list is used for the generation of error information and valid for # every sub test. let $diff_column_list= t2.COUNT_READ - t1.COUNT_READ AS D_COUNT_READ, t2.COUNT_READ AS S2_COUNT_READ, t1.COUNT_READ AS S1_COUNT_READ, t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ AS D_SUM_NUMBER_OF_BYTES_READ, t2.SUM_NUMBER_OF_BYTES_READ AS S2_SUM_NUMBER_OF_BYTES_READ, t1.SUM_NUMBER_OF_BYTES_READ AS S1_SUM_NUMBER_OF_BYTES_READ, t2.COUNT_WRITE - t1.COUNT_WRITE AS D_COUNT_WRITE, t2.COUNT_WRITE AS S2_COUNT_WRITE, t1.COUNT_WRITE AS S1_COUNT_WRITE, t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE AS D_SUM_NUMBER_OF_BYTES_WRITE, t2.SUM_NUMBER_OF_BYTES_WRITE AS S2_SUM_NUMBER_OF_BYTES_WRITE, t1.SUM_NUMBER_OF_BYTES_WRITE AS S1_SUM_NUMBER_OF_BYTES_WRITE, t2.COUNT_MISC - t1.COUNT_MISC AS D_COUNT_MISC, t2.COUNT_MISC AS S2_COUNT_MISC, t1.COUNT_MISC AS S1_COUNT_MISC; # $part is used for the generation of "check" statements + error information # and valid for every sub test. let $part= FROM mysqltest.socket_summary_by_instance_detail t1 JOIN mysqltest.socket_summary_by_instance_detail t2 USING (EVENT_NAME, OBJECT_INSTANCE_BEGIN, run) WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND EVENT_NAME LIKE ('%client_connection') AND run = 1; --echo # Check the differences between changes caused by SQL statements --echo # These differences must correspond to parameters like --echo # - statement, table name or column name length --echo # - number of rows in result set, size of rows in result set etc. # --> Statement NOT LIKE '%Connect%' let stmt1= SELECT col2 FROM does_not_exist; let stmt2= SELECT col2 FROM does_not_exist WHERE col1 = 0; # # CNT_READ BYTES_READ CNT_WRITE BYTES_WRITE CNT_MISC statement # 3 36 1 59 1 SELECT col2 FROM does_not_exist # 3 51 1 59 1 SELECT col2 FROM does_not_exist WHERE col1 = 0 # The string of the statement gets charged into SUM_NUMBER_OF_BYTES_READ. # The server error message gets charged into SUM_NUMBER_OF_BYTES_WRITE. let $msg= # One statement is longer than the other. # Both statements fail with the same error message (table does not exist); # let $my_rules= t2.COUNT_READ - t1.COUNT_READ = 0 AND t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1') AND t2.COUNT_WRITE - t1.COUNT_WRITE = 0 AND t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE = 0 AND t2.COUNT_MISC - t1.COUNT_MISC = 0; --source ../include/socket_check1.inc let $stmt1= SELECT col2 FROM does_not_exist WHERE col1 = 0; let $stmt2= SELECT col2 FROM does_not_exist WHERE col1 A 0; # # CNT_READ BYTES_READ CNT_WRITE BYTES_WRITE CNT_MISC statement # 3 51 1 59 1 SELECT col2 FROM does_not_exist WHERE col1 = 0 # 3 51 1 162 1 SELECT col2 FROM does_not_exist WHERE col1 A 0 let $msg= # Both statements have the same length and fail. # The length of the error messages differs.; let $my_rules= t2.COUNT_READ - t1.COUNT_READ = 0 AND t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1') AND t2.COUNT_WRITE - t1.COUNT_WRITE = 0 AND t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE > 0 AND t2.COUNT_MISC - t1.COUNT_MISC = 0; --source ../include/socket_check1.inc let $stmt1= SELECT col2 FROM does_not_exist; let $stmt2= SELECT col2 FROM does_not_exist0123; # CNT_READ BYTES_READ CNT_WRITE BYTES_WRITE CNT_MISC statement # 3 36 1 59 1 SELECT col2 FROM does_not_exist # 3 40 1 63 1 SELECT col2 FROM does_not_exist0123 let $msg= # Both statements fail (table does not exist). # The length of the statement and the length of the error messages differs. # Reason for both differences is the length of the table name.; let $my_rules= t2.COUNT_READ - t1.COUNT_READ = 0 AND t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1') AND t2.COUNT_WRITE - t1.COUNT_WRITE = 0 AND t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE = LENGTH('$stmt2') - LENGTH('$stmt1') AND t2.COUNT_MISC - t1.COUNT_MISC = 0; --source ../include/socket_check1.inc # Assuming that some new check should be added. # How to enforce that a lot info is printed so that it becomes easy to derive # the right value for $my_rules? #---------------------------------------------------------------------------- # let $my_rules= 0; # This will cause that suite/perfschema/include/socket_check1.inc concludes that # the check via $my_rules failed and it will print debug information. # let $stmt1= SELECT col2 FROM does_not_exist WHERE col1 = 0; # let $stmt2= SELECT col2 FROM does_not_exist WHERE col1 A 0; # let $my_rules= 0; # --source ../include/socket_check1.inc let $stmt2= SELECT col2 AS my_super_col FROM mysqltest.my_aux WHERE col1 = -1; let $stmt1= SELECT col2 FROM mysqltest.my_aux WHERE col1 = -1; # # CNT_READ BYTES_READ CNT_WRITE BYTES_WRITE CNT_MISC statement # 3 54 1 78 1 SELECT col2 FROM mysqltest.my_aux WHERE col1 = -1 # 3 70 1 86 1 SELECT col2 AS my_super_col FROM mysqltest.my_aux WHERE col1 = -1 let $msg= # Both statements get an empty result set. # The length of the statements and the length of the result sets differs. # Reason for both differences is the length of the some column name.; let $my_rules= t2.COUNT_READ - t1.COUNT_READ = 0 AND t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1') AND t2.COUNT_WRITE - t1.COUNT_WRITE = 0 AND t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE = LENGTH('my_super_col') - LENGTH('col2') AND t2.COUNT_MISC - t1.COUNT_MISC = 0; --source ../include/socket_check1.inc let $stmt2= SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1; let $stmt1= SELECT col2 FROM mysqltest.my_aux WHERE col1 = -1; # # CNT_READ BYTES_READ CNT_WRITE BYTES_WRITE CNT_MISC statement # t1 3 54 1 78 1 SELECT col2 FROM mysqltest.my_aux WHERE col1 = -1 # t2 3 53 1 83 1 SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1 let $msg= # Both statements differ in the statement length. # One statement earns an empty result set. # The other statement earns one row containing an empty string.; let $my_rules= t2.COUNT_READ - t1.COUNT_READ = 0 AND t1.SUM_NUMBER_OF_BYTES_READ - t2.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt1') - LENGTH('$stmt2') AND t2.COUNT_WRITE - t1.COUNT_WRITE = 0 AND t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE > 0 AND t2.COUNT_MISC - t1.COUNT_MISC = 0; --source ../include/socket_check1.inc let $stmt2= SELECT col2 FROM mysqltest.my_aux WHERE col1 = 2; let $stmt1= SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1; # # CNT_READ BYTES_READ CNT_WRITE BYTES_WRITE CNT_MISC statement # 3 53 1 83 1 SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1 # 3 53 1 84 1 SELECT col2 FROM mysqltest.my_aux WHERE col1 = 2 let $msg= # Both statements have the same length. # One statement earns an one row containing an empty string. # The other statement earns one row containing a string 1 byte long.; let $my_rules= t2.COUNT_READ - t1.COUNT_READ = 0 AND t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1') AND t2.COUNT_WRITE - t1.COUNT_WRITE = 0 AND t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE = 1 AND t2.COUNT_MISC - t1.COUNT_MISC = 0; --source ../include/socket_check1.inc let $stmt2= SELECT col2 FROM mysqltest.my_aux WHERE col1 = 3; let $stmt1= SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1; # # CNT_READ BYTES_READ CNT_WRITE BYTES_WRITE CNT_MISC statement # 3 53 1 83 1 SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1 # 3 53 1 1109 1 SELECT col2 FROM mysqltest.my_aux WHERE col1 = 3 let $msg= # Both statements have the same length. # One statement earns an one row containing an empty string. # The other statement earns one row containing a string 1024 byte long.; let $my_rules= t2.COUNT_READ - t1.COUNT_READ = 0 AND t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1') AND t2.COUNT_WRITE - t1.COUNT_WRITE = 0 AND t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE >= 1024 AND t2.COUNT_MISC - t1.COUNT_MISC = 0; --source ../include/socket_check1.inc let $stmt2= SELECT col2 FROM mysqltest.my_aux WHERE col1 < 2; let $stmt1= SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1; # # CNT_READ BYTES_READ CNT_WRITE BYTES_WRITE CNT_MISC statement # t1 3 53 1 83 1 SELECT col2 FROM mysqltest.my_aux WHERE col1 = 1 # t2 3 53 1 88 1 SELECT col2 FROM mysqltest.my_aux WHERE col1 < 2 let $msg= # Both statements have the same length. # One statement earns an one row containing an empty string. # The other statement earns two rows containing an empty string.; let $my_rules= t2.COUNT_READ - t1.COUNT_READ = 0 AND t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1') AND t2.COUNT_WRITE - t1.COUNT_WRITE = 0 AND t2.SUM_NUMBER_OF_BYTES_WRITE - t1.SUM_NUMBER_OF_BYTES_WRITE > 0 AND t2.COUNT_MISC - t1.COUNT_MISC = 0; --source ../include/socket_check1.inc --echo # 4.5 Check the differences caused by Connects --echo # Attention: Succesful Connects run an additional "DO 1". --echo # 4.5.1 Connects do not charge anything into READ or WRITE counters --echo # of the instance with EVENT_NAME NOT LIKE ('%client_connection%'). --echo # This mean all these counters must be 0. let $my_rules= COUNT_READ = 0 AND SUM_TIMER_READ = 0 AND SUM_NUMBER_OF_BYTES_READ = 0 AND COUNT_WRITE = 0 AND SUM_TIMER_WRITE = 0 AND SUM_NUMBER_OF_BYTES_WRITE = 0; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('%Connect%') AND EVENT_NAME NOT LIKE ('%client_connection%') AND NOT ( $my_rules ); if(`SELECT COUNT(*) $part `) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval SELECT $column_list $part; let $print_details= 1; } --echo # 4.5.2 Connects using for host the value 'localhost' --echo # 4.5.2.1 For the instance with EVENT_NAME LIKE '%server_tcpip_socket' --echo # COUNT_MISC = 0 AND SUM_TIMER_MISC = 0 must be valid --echo # because we run through server_unix_socket. #=========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info UPDATE mysqltest.socket_summary_by_instance_detail SET COUNT_MISC = 13 WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('%Connect%localhost%') AND EVENT_NAME LIKE ('%server_tcpip_socket%') LIMIT 1; --disable_info } let $my_rules= COUNT_MISC = 0 AND SUM_TIMER_MISC = 0; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('%Connect%localhost%') AND EVENT_NAME LIKE ('%server_tcpip_socket%') AND NOT ( $my_rules ); #if(`SELECT COUNT(*) $part `) # DISABLED FOR WINDOWS if (0) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval SELECT $column_list $part; let $print_details= 1; } --echo # 4.5.2.2 For the instance with EVENT_NAME LIKE '%server_unix_socket' --echo # COUNT_MISC > 0 must be valid. --echo # SKIPPED FOR WINDOWS #=========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info UPDATE mysqltest.socket_summary_by_instance_detail SET COUNT_MISC = 0 WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('%Connect%localhost%') AND EVENT_NAME LIKE ('%server_unix_socket%') LIMIT 1; --disable_info } let $my_rules= COUNT_MISC > 0; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('%Connect%localhost%') AND EVENT_NAME LIKE ('%server_unix_socket%') AND NOT ( $my_rules ); #if(`SELECT COUNT(*) $part `) if (0) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval SELECT $column_list $part; let $print_details= 1; } --echo # 4.5.3 Connects using for host a value <> 'localhost' --echo # 4.5.3.1 For the instance with EVENT_NAME LIKE '%server_unix_socket' --echo # COUNT_MISC = 0 AND SUM_TIMER_MISC = 0 must be valid --echo # because we run through server_tcpip_socket. --echo # SKIPPED FOR WINDOWS #=========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info eval UPDATE mysqltest.socket_summary_by_instance_detail SET COUNT_MISC = 13 WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND EVENT_NAME LIKE ('%server_unix_socket%') AND statement LIKE ('%Connect%$my_localhost%') LIMIT 1; --disable_info } let $my_rules= COUNT_MISC = 0 AND SUM_TIMER_MISC = 0; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('%Connect%$my_localhost%') AND EVENT_NAME LIKE ('%server_unix_socket%') AND NOT ( $my_rules ); #if(`SELECT COUNT(*) $part `) if (0) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval SELECT $column_list $part; let $print_details= 1; } --echo # 4.5.3.2 For the instance with EVENT_NAME LIKE '%server_tcpip_socket' --echo # COUNT_MISC > 0 must be valid. #=========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info eval UPDATE mysqltest.socket_summary_by_instance_detail SET COUNT_MISC = 0 WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('%Connect%$my_localhost%') AND EVENT_NAME LIKE ('%server_tcpip_socket%') LIMIT 1; --disable_info } let $my_rules= COUNT_MISC > 0; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('%Connect%$my_localhost%') AND EVENT_NAME LIKE ('%server_tcpip_socket%') AND NOT ( $my_rules ); if(`SELECT COUNT(*) $part `) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval SELECT $column_list $part; let $print_details= 1; } --echo # 4.5.4 Failing Connects do not cause any row with EVENT_NAME --echo # LIKE '%client_connection' #=========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info eval UPDATE mysqltest.socket_summary_by_instance_detail SET statement = 'Connect boot ' WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('Connect%root%') AND EVENT_NAME LIKE ('%client_connection') LIMIT 1; --disable_info } let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('Connect%boot%') AND EVENT_NAME LIKE ('%client_connection'); if(`SELECT COUNT(*) $part`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect that there are no rows because --echo # - failing connects do not cause a row with "client_connection" --echo # - all failing connects contain a user name LIKE '%boot%' eval SELECT $column_list $part; let $print_details= 1; } --echo # 4.5.5 Successful Connects cause a new instance with EVENT_NAME --echo # LIKE '%client_connection' #=========================================================================== # Enable the following lines for debugging the check. # Attention: socket_summary_by_instance_detail is after that rotten. if(0) { --enable_info DELETE FROM mysqltest.socket_summary_by_instance_detail WHERE EVENT_NAME LIKE ('%client_connection') AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('Connect%root%') LIMIT 1; --disable_info } # - connects which should be successful have statement LIKE ('Connect%root%'). # - We try every type of Connect $loop_rounds times. # Therefore we should find $loop_rounds rows with # - EVENT_NAME LIKE ('%client_connection') # AND # - OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin # We do not want to count the entry of belonging to the default connection. # AND # - statement LIKE ('Connect%root%') # The connects which should be successful. # let $my_rules= COUNT(*) = $loop_rounds; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE EVENT_NAME LIKE ('%client_connection') AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement LIKE ('Connect%root%') GROUP BY statement HAVING NOT ( $my_rules ); if(`SELECT COUNT(*) $part`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # for GROUP BY statement --echo # eval SELECT $column_list FROM mysqltest.socket_summary_by_instance_detail WHERE EVENT_NAME LIKE ('%client_connection') AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND statement IN (SELECT statement $part); let $print_details= 1; } --echo # 4.6 Check the differences caused by Connects --echo # - INSTANCES with an EVENT_NAME like server_tcpip_socket or --echo # server_unix_socket are already checked --echo # - the stability of results is already checked --echo # So we con go with the results of the first run. # Typical content of mysqltest.socket_summary_by_instance_detail # # eval # SELECT $column_list # FROM mysqltest.socket_summary_by_instance_detail # WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin # AND EVENT_NAME LIKE ('%client_connection') # AND statement LIKE ('Connect%') # AND run = 1 # ORDER BY event_name,statement, run; # CREAD TREAD BREAD CWRITE TWRITE BWRITE CMISC TMISC STATEMENT # 4 6149616 79 3 34008480 117 3 38914128 Connect (con*,::ffff:127.0.0.1,root,,mysqltest,,) # 4 7012368 84 3 10112256 117 2 43067376 Connect (con*,localhost,root,,mysqlsupertest,,) # 4 7172880 79 3 10247688 117 2 40128000 Connect (con*,localhost,root,,mysqltest,,) # 4 6706392 85 3 15509472 117 2 34851168 Connect (con*,localhost,root012345,,mysqltest,,) # 4 10543632 89 3 10578744 117 2 39460872 Connect (con*,localhost,root0123456789,,mysqltest,,) --echo # 4.6.1 The SUM_OF_BYTES_WRITE value depends on length of database --echo # since the database name is written in OK packet. --echo # Hence the value 2. #======================================================================== let $my_rules= COUNT(DISTINCT SUM_NUMBER_OF_BYTES_WRITE) = 2; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND EVENT_NAME LIKE ('%client_connection') AND statement LIKE ('Connect%') AND run = 1; if(`SELECT NOT ( $my_rules) $part`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # for all Connects --echo # eval SELECT statement, SUM_NUMBER_OF_BYTES_WRITE $part; let $print_details= 1; } --echo # 4.6.2 The SUM_OF_BYTES_WRITE value hast to be > 100. #============================================================ let $my_rules= SUM_NUMBER_OF_BYTES_WRITE > 100; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND EVENT_NAME LIKE ('%client_connection') AND statement LIKE ('Connect%') AND NOT ( $my_rules ) AND run = 1; if(`SELECT COUNT(*) $part`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # for all Connects --echo # eval SELECT statement, SUM_NUMBER_OF_BYTES_WRITE $part; let $print_details= 1; } --echo # 4.6.3 COUNT_READ, COUNT_WRITE and COUNT_MISC have to be to be > 0 #========================================================================= let $my_rules= COUNT_READ > 0 AND COUNT_WRITE > 0 AND COUNT_MISC > 0; let $part= FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND EVENT_NAME LIKE ('%client_connection') AND statement LIKE ('Connect%') AND NOT ( $my_rules ) AND run = 1; if(`SELECT COUNT(*) $part`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # for all Connects --echo # eval SELECT statement, COUNT_READ, COUNT_WRITE, COUNT_MISC $part; let $print_details= 1; } --echo # 4.6.4 Checks based on comparison of results for connects let $part0= FROM mysqltest.socket_summary_by_instance_detail t1 JOIN mysqltest.socket_summary_by_instance_detail t2 USING (EVENT_NAME, run) WHERE EVENT_NAME LIKE ('%client_connection') AND run = 1 AND t2.OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND t1.OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin; let $part1= SELECT RPAD(statement,55,' ') AS STATEMENT, LENGTH(statement), SUM_NUMBER_OF_BYTES_READ FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin AND EVENT_NAME LIKE ('%client_connection') AND run = 1; --echo # 4.6.4 The user name length affects the SUM_OF_BYTES_READ value #====================================================================== # CREAD TREAD BREAD CWRITE TWRITE BWRITE CMISC TMISC STATEMENT # 4 6706392 85 3 15509472 117 2 34851168 Connect (con*,localhost,root012345,,mysqltest,,) # 4 10543632 89 3 10578744 117 2 39460872 Connect (con*,localhost,root0123456789,,mysqltest,,) let $stmt2= Connect (con*,localhost,root0123456789,,mysqltest,,); let $stmt1= Connect (con*,localhost,root012345,,mysqltest,,); let $my_rules= t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1'); if(`SELECT NOT ($my_rules) $part0 AND t2.statement = '$stmt2' AND t1.statement = '$stmt1'`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval $part1 AND statement IN('$stmt2','$stmt1'); let $print_details= 1; } --echo # 4.6.5 The database name length affects the SUM_OF_BYTES_READ value #========================================================================== # CREAD TREAD BREAD CWRITE TWRITE BWRITE CMISC TMISC STATEMENT # 4 7012368 84 3 10112256 117 2 43067376 Connect (con*,localhost,root,,mysqlsupertest,,) # 4 7172880 79 3 10247688 117 2 40128000 Connect (con*,localhost,root,,mysqltest,,) let $stmt2= Connect (con*,localhost,root,,mysqlsupertest,,); let $stmt1= Connect (con*,localhost,root,,mysqltest,,); let $my_rules= t2.SUM_NUMBER_OF_BYTES_READ - t1.SUM_NUMBER_OF_BYTES_READ = LENGTH('$stmt2') - LENGTH('$stmt1'); if(`SELECT NOT ($my_rules) $part0 AND t2.statement = '$stmt2' AND t1.statement = '$stmt1'`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval $part1 AND statement IN('$stmt2','$stmt1'); let $print_details= 1; } --echo # 5. Check the impact of TRUNCATE on socket_summary_by_instance. --echo # It must reset all counters. #======================================================================= # We do not need to check if the majority of counters is <> 0 because if # we ever hit such a bad state than a lot of the preceding checks would # have already failed and reported this. TRUNCATE TABLE performance_schema.socket_summary_by_instance; let $my_rules= COUNT_STAR = 0 AND SUM_TIMER_WAIT = 0 AND COUNT_READ = 0 AND SUM_TIMER_READ = 0 AND SUM_NUMBER_OF_BYTES_READ = 0 AND COUNT_WRITE = 0 AND SUM_TIMER_WRITE = 0 AND SUM_NUMBER_OF_BYTES_WRITE = 0 AND COUNT_MISC = 0 AND SUM_TIMER_MISC = 0; if(`SELECT COUNT(*) FROM performance_schema.socket_summary_by_instance WHERE NOT ( $my_rules ) AND OBJECT_INSTANCE_BEGIN = @default_object_instance_begin`) { --enable_query_log --enable_result_log --echo # The statistics looks suspicious. --echo # We expect --echo # $my_rules --echo # eval SELECT COUNT_STAR, SUM_TIMER_WAIT, COUNT_READ,SUM_TIMER_READ,SUM_NUMBER_OF_BYTES_READ, COUNT_WRITE,SUM_TIMER_WRITE,SUM_NUMBER_OF_BYTES_WRITE, COUNT_MISC,SUM_TIMER_MISC FROM performance_schema.socket_summary_by_instance WHERE OBJECT_INSTANCE_BEGIN = @default_object_instance_begin; } if($print_details) { --enable_query_log --enable_result_log --horizontal_results --echo # Dump detailed differences after - before statement execution --echo # 1. The statement executing connection and hopefully noone else SELECT @default_object_instance_begin; SELECT EVENT_NAME, OBJECT_INSTANCE_BEGIN, COUNT_READ, SUM_NUMBER_OF_BYTES_READ, COUNT_WRITE, SUM_NUMBER_OF_BYTES_WRITE, COUNT_MISC, statement FROM mysqltest.socket_summary_by_instance_detail WHERE EVENT_NAME LIKE '%client_connection%' AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin ORDER BY statement, run; --echo # 2. The connection default SELECT EVENT_NAME, COUNT_READ, SUM_NUMBER_OF_BYTES_READ, COUNT_WRITE, SUM_NUMBER_OF_BYTES_WRITE, COUNT_MISC, statement FROM mysqltest.socket_summary_by_instance_detail WHERE OBJECT_INSTANCE_BEGIN = @default_object_instance_begin ORDER BY statement,run; --echo # 3. The "server_unix_socket" # WHERE OBJECT_INSTANCE_BEGIN = @default_object_instance_begin SELECT EVENT_NAME, COUNT_READ, SUM_NUMBER_OF_BYTES_READ, COUNT_WRITE, SUM_NUMBER_OF_BYTES_WRITE, COUNT_MISC, statement FROM mysqltest.socket_summary_by_instance_detail WHERE EVENT_NAME LIKE '%server_unix_socket%' ORDER BY statement,run; --echo # 4. The "server_tcpip_socket" SELECT EVENT_NAME, COUNT_READ, SUM_NUMBER_OF_BYTES_READ, COUNT_WRITE, SUM_NUMBER_OF_BYTES_WRITE, COUNT_MISC, statement FROM mysqltest.socket_summary_by_instance_detail WHERE EVENT_NAME LIKE '%server_tcpip_socket%' ORDER BY statement,run; --echo # 5. mysqltest.my_socket_summary_by_instance --vertical_results SELECT * FROM mysqltest.my_socket_summary_by_instance; --horizontal_results } --echo # 6. Cleanup #================== # Cleanup --disable_query_log eval UPDATE performance_schema.setup_timers SET TIMER_NAME = '$wait_timer' WHERE NAME = 'wait'; DROP SCHEMA mysqltest; DROP SCHEMA mysqlsupertest; --connection con1 --disconnect con1 --source include/wait_until_disconnected.inc --connection default --enable_query_log
Close