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

server hangs with threadpool,protocol compression and client pipelining

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.1(EOL), 10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5
    • 10.2.35, 10.3.26, 10.4.16, 10.5.7
    • OTHER
    • None

    Description

      to reproduce

       
      mysql-test-run.pl compress --mysqld=--thread-handling=pool-of-threads --ps-protocol
      

      The C/C client uses pipelining for prepared statements, happens packs 2 protocol packets COM_STMT_RESET+COM_STMT_EXECUTE into single compressed packet.

      After executing the COM_STMT_RESET threadpool believes there is no more data from client (it does not check if any unread data is present in THD::NET), so it decides to wait for more client input, while client is waiting for the results of COM_STMT_EXECUTE.

      Attachments

        Activity

          wlad Vladislav Vaintroub created issue -
          wlad Vladislav Vaintroub made changes -
          Field Original Value New Value
          Description to reproduce

          mysql-test-run.pl compress --mysqld=--thread-handling=pool-of-threads --ps-protocol

          The C/C client uses pipelining for prepared statements, happens packs 2 protocol packets COM_STMT_RESET+COM_STMT_EXECUTE into single compressed packet.

          After executing the COM_STMT_RESET threadpool believes there is no more data from client (it does not check if any unread data is present in THD::NET), so it decides to wait for more client input, while client is waiting for the results of COM_STMT_EXECUTE.

          to reproduce

          {code:bash}

          mysql-test-run.pl compress --mysqld=--thread-handling=pool-of-threads --ps-protocol
          {code}


          The C/C client uses pipelining for prepared statements, happens packs 2 protocol packets COM_STMT_RESET+COM_STMT_EXECUTE into single compressed packet.

          After executing the COM_STMT_RESET threadpool believes there is no more data from client (it does not check if any unread data is present in THD::NET), so it decides to wait for more client input, while client is waiting for the results of COM_STMT_EXECUTE.

          wlad Vladislav Vaintroub made changes -
          issue.field.resolutiondate 2020-10-02 22:26:30.0 2020-10-02 22:26:30.933
          wlad Vladislav Vaintroub made changes -
          Fix Version/s 10.2.34 [ 24505 ]
          Fix Version/s 10.3.25 [ 24506 ]
          Fix Version/s 10.4.15 [ 24507 ]
          Fix Version/s 10.5.6 [ 24508 ]
          Fix Version/s 10.2 [ 14601 ]
          Resolution Fixed [ 1 ]
          Status Open [ 1 ] Closed [ 6 ]
          wlad Vladislav Vaintroub made changes -
          Summary server hangs with threadpool if protocol compression with client pipelining server hangs with threadpool,protocol compression and client pipelining
          ralf.gebhardt Ralf Gebhardt made changes -
          Fix Version/s 10.5.7 [ 25019 ]
          ralf.gebhardt Ralf Gebhardt made changes -
          Fix Version/s 10.5.6 [ 24508 ]
          ralf.gebhardt Ralf Gebhardt made changes -
          Fix Version/s 10.4.16 [ 25020 ]
          ralf.gebhardt Ralf Gebhardt made changes -
          Fix Version/s 10.4.15 [ 24507 ]
          ralf.gebhardt Ralf Gebhardt made changes -
          Fix Version/s 10.3.26 [ 25021 ]
          ralf.gebhardt Ralf Gebhardt made changes -
          Fix Version/s 10.3.25 [ 24506 ]
          ralf.gebhardt Ralf Gebhardt made changes -
          Fix Version/s 10.2.35 [ 25022 ]
          ralf.gebhardt Ralf Gebhardt made changes -
          Fix Version/s 10.2.34 [ 24505 ]
          serg Sergei Golubchik made changes -
          Workflow MariaDB v3 [ 114175 ] MariaDB v4 [ 158431 ]

          People

            wlad Vladislav Vaintroub
            wlad Vladislav Vaintroub
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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