Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-41965

`perfschema.socket_connect` fail with "There should be one client connection"

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 13.1, 13.2
    • None
    • Tests, MTR
    • None
    • various, according to cross-reference

    Description

      --- /path/to/build/mysql-test/suite/perfschema/r/socket_connect.result
      +++ /path/to/build/mysql-test/suite/perfschema/r/socket_connect.reject
      @@ -16,154 +16,11 @@
       SELECT COUNT(*) INTO @my_client_connections
       FROM performance_schema.socket_instances
       WHERE EVENT_NAME LIKE "%client_connection%";
      -#
      -# 1.2 Get the default THREAD_ID;
      -#
      -SELECT THREAD_ID INTO @my_thread_id
      -FROM performance_schema.threads
      -WHERE PROCESSLIST_ID = CONNECTION_ID();
      -#
      -# 1.3 Get the default OBJECT_INSTANCE_BEGIN
      -#
      -SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
      -FROM performance_schema.socket_instances
      -WHERE THREAD_ID = @my_thread_id;
      -#==============================================================================
      -# 2.0 ESTABLISH TCP/IP CONNECTION 1
      -#     Connect with IP = localhost (127.0.0.1 or ::1)
      -#==============================================================================
      -#
      -# 2.1 Get the connection thread id
      -#
      -SELECT THREAD_ID INTO @my_thread_id
      -FROM performance_schema.threads
      -WHERE PROCESSLIST_ID = CONNECTION_ID();
      -#
      -# 2.2 Get the connection object instance begin
      -#
      -SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
      -FROM performance_schema.socket_instances
      -WHERE THREAD_ID = @my_thread_id;
      -#
      -# 2.3 Get the connection port
      -#
      -SELECT PORT INTO @my_port
      -FROM performance_schema.socket_instances
      -WHERE THREAD_ID = @my_thread_id;
      -#
      -# 2.4 Verify that the connection is 127.0.0.1 or ::1
      -#
      -SELECT COUNT(*) = 1 AS 'Expect 1'
      -FROM performance_schema.socket_instances
      -WHERE EVENT_NAME LIKE '%client_connection%'
      -  AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1')
      -AND PORT= @con1_port
      -AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
      -Expect 1
      -1
      -#
      -# 2.5 Verify that the same connection is in the summary instance table
      -#
      -SELECT COUNT(*) = 1 AS 'Expect 1'
      -FROM performance_schema.socket_summary_by_instance
      -WHERE EVENT_NAME LIKE '%client_connection%'
      -  AND OBJECT_INSTANCE_BEGIN= @con1_object_id;
      -Expect 1
      -1
      -#
      -# Switch to connection default
      -#
      -connection default;
      -#==============================================================================
      -# 3.0 ESTABLISH TCP/IP CONNECTION 2
      -#     Connect with IP = localhost (127.0.0.1 or ::1)
      -#==============================================================================
      -#
      -# 3.1 Get the connection thread id
      -#
      -SELECT THREAD_ID INTO @my_thread_id
      -FROM performance_schema.threads
      -WHERE PROCESSLIST_ID = CONNECTION_ID();
      -#
      -# 3.2 Get the connection object instance begin
      -#
      -SELECT OBJECT_INSTANCE_BEGIN INTO @my_object_instance_begin
      -FROM performance_schema.socket_instances
      -WHERE THREAD_ID = @my_thread_id;
      -#
      -# 3.3 Get the connection port
      -#
      -SELECT PORT INTO @my_port
      -FROM performance_schema.socket_instances
      -WHERE THREAD_ID = @my_thread_id;
      -#
      -# 3.4 Verify that the connection is 127.0.0.1 or ::1
      -#
      -SELECT COUNT(*) = 1 AS 'Expect 1'
      -FROM performance_schema.socket_instances
      -WHERE EVENT_NAME LIKE '%client_connection%'
      -  AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1')
      -AND PORT= @con2_port
      -AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
      -Expect 1
      -1
      -#
      -# 3.5 Verify that the same connection is in the summary instance table
      -#
      -SELECT COUNT(*) = 1 AS 'Expect 1'
      -FROM performance_schema.socket_summary_by_instance
      -WHERE EVENT_NAME LIKE '%client_connection%'
      -  AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
      -Expect 1
      -1
      -#
      -# 3.6 Verify that the connection is 127.0.0.1 or ::1
      -#
      -SELECT COUNT(*) = 1 AS 'Expect 1'
      -FROM performance_schema.socket_instances
      -WHERE EVENT_NAME LIKE '%client_connection%'
      -  AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1')
      -AND PORT= @con2_port
      -AND OBJECT_INSTANCE_BEGIN= @con2_object_id;
      -Expect 1
      -1
      -#==============================================================================
      -# 4.0 Verify both connections exist in the instance tables
      -#==============================================================================
      -connection default;
      -#
      -# 4.1 Verify that there are two TCP/IP connections in the socket instance table
      -#
      -SELECT COUNT(*) = 2 AS 'Expect 2'
      -FROM performance_schema.socket_instances
      -WHERE EVENT_NAME LIKE '%client_connection%'
      -  AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin
      -AND (IP LIKE '%127.0.0.1' OR IP LIKE '%::1');
      -Expect 2
      -1
      -#
      -# 4.2 Verify that there are two TCP/IP connections in the summary instance table
      -#
      -SELECT COUNT(*) = 2 AS 'Expect 2'
      -FROM performance_schema.socket_summary_by_instance
      -WHERE EVENT_NAME LIKE '%client_connection%'
      -  AND OBJECT_INSTANCE_BEGIN <> @default_object_instance_begin;
      -Expect 2
      -1
      -#==============================================================================
      -# 5.0 Drop the client connections
      -#==============================================================================
      -# 5.1 Disconnect con1
      -disconnect con1;
      -# 5.2 Disconnect con2
      -disconnect con2;
      -connection default;
      -#==============================================================================
      -# 6.0 Verify sockets were removed from the instance tables
      -#==============================================================================
      -#
      -# 6.1 Verify that there are no TCP/IP connections in the socket instance table
      -#
      -#
      -# 6.2 Verify that there are no TCP/IP connections in the summary instance table
      -#
      +# There should be one client connection
      +SELECT * FROM performance_schema.socket_instances;
      +EVENT_NAME	OBJECT_INSTANCE_BEGIN	THREAD_ID	SOCKET_ID	IP	PORT	STATE
      +wait/io/socket/sql/server_tcpip_socket	1688849860263936	1	11	127.0.0.1	19780	ACTIVE
      +wait/io/socket/sql/server_unix_socket	1688849860329472	1	12		0	ACTIVE
      +wait/io/socket/sql/client_connection	1688849870290945	412	15		0	ACTIVE
      +wait/io/socket/sql/client_connection	1688849870356481	413	59	127.0.0.1	55784	ACTIVE
      +# abort
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ParadoxV5 Jimmy Hú
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.