| Bug #71733 | I cannot get result of performance_schema.socket_instances | ||
|---|---|---|---|
| Submitted: | 16 Feb 2014 6:39 | Modified: | 21 Feb 2014 4:24 |
| Reporter: | 徹 赤松 | Email Updates: | |
| Status: | Not a Bug | Impact on me: | |
| Category: | MySQL Server: Performance Schema | Severity: | S3 (Non-critical) |
| Version: | 5.7.3 | OS: | Linux |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | m_version_state, performance_schema, pfs->m_lock.is_populated(), socket_instances | ||
[17 Feb 2014 8:31]
MySQL Verification Team
Hi,
Thank you for the report.
Imho this is not a bug, because the socket_instances table relies on PERFORMANCE_SCHEMA instrumentation which is not on by default.
May be if you can enable it at run time(see update in below test) or at start up(–performance_schema_instrument=wait/io/socket/sql/client_connection=counted )? Could you check and confirm?
mysql> select * from performance_schema.setup_instruments where name LIKE '%socket%';
+--------------------------------------------------+---------+-------+
| NAME | ENABLED | TIMED |
+--------------------------------------------------+---------+-------+
| wait/synch/mutex/sql/LOCK_socket_listener_active | NO | NO |
| wait/synch/cond/sql/COND_socket_listener_active | NO | NO |
| wait/io/socket/sql/server_tcpip_socket | NO | NO |
| wait/io/socket/sql/server_unix_socket | NO | NO |
| wait/io/socket/sql/client_connection | NO | NO |
+--------------------------------------------------+---------+-------+
mysql> select * from performance_schema.socket_instances;
Empty set (0.00 sec)
// Update at runtime
mysql> UPDATE performance_schema.setup_instruments
-> SET enabled = 'YES'
-> WHERE name LIKE 'wait/io/socket/sql/client_connection';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from performance_schema.socket_instances;
Empty set (0.00 sec)
mysql> \q
Bye
// Try with new connection
mysql-5.7.4]# bin/mysql -uroot -p -S /tmp/master/mysql.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
..
mysql> select * from performance_schema.socket_instances;
+--------------------------------------+-----------------------+-----------+-----------+----+------+--------+
| EVENT_NAME | OBJECT_INSTANCE_BEGIN | THREAD_ID | SOCKET_ID | IP | PORT | STATE |
+--------------------------------------+-----------------------+-----------+-----------+----+------+--------+
| wait/io/socket/sql/client_connection | 45105216 | 23 | 33 | | 0 | ACTIVE |
+--------------------------------------+-----------------------+-----------+-----------+----+------+--------+
1 row in set (0.00 sec)
[20 Feb 2014 20:20]
徹 赤松
Dir Umesh Umesh, thank you.

Description: I am useing mysql version 5.7.3-m13 now. I cannot get result of performance_schema.socket_instances. mysql> select * from performance_schema.socket_instances; Empty set (0.00 sec) I can get result of performance_schema.socket_summary_by_event_name mysql> select event_name from performance_schema.socket_summary_by_event_name; +----------------------------------------+ | event_name | +----------------------------------------+ | wait/io/socket/sql/server_tcpip_socket | | wait/io/socket/sql/server_unix_socket | | wait/io/socket/sql/client_connection | +----------------------------------------+ 3 rows in set (0.00 sec) I checked is_populated() function in storage/perfschema/table_socket_instances.cc file. 116 if (pfs->m_lock.is_populated()) 134 if (! pfs->m_lock.is_populated()) Return value of pfs->m_lock.is_populated() function always 0, so cannot make_row(). So, I checked is_populated() function in storage/perfschema/pfs_lock.h 82 volatile uint32 m_version_state; : 91 /** Returns true if the record contains values that can be read. */ 92 bool is_populated(void) 93 { 94 uint32 copy= m_version_state; /* non volatile copy, and dirty read */ 95 return ((copy & STATE_MASK) == PFS_LOCK_ALLOCATED); 96 } I found m_version_state value is Zero. Same result socket_summary_by_instance. mysql> select event_name from performance_schema.socket_summary_by_instance; Empty set (0.00 sec) Please check and I am pleased if you can reply. How to repeat: mysql> select * from performance_schema.socket_instances; Empty set (0.00 sec)