Uploaded image for project: 'MariaDB MaxScale'
  1. MariaDB MaxScale
  2. MXS-3893

read/write split service incorrectly times out valid sessions on master if timeout happens on replica

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.5.14
    • Fix Version/s: 6.2.1
    • Component/s: Core
    • Labels:
      None

      Description

      The connection_timeout feature does not check whether the connection is truly idle before it kills it. Sessions that are actively performing some operation and are waiting for a result should be left alone.

      Original description:


      If using read/write split service and connection_timeout is set in service, if one of the connections on replica servers times out, it kills the master connection too, even if it has a valid transaction running and therefore is not idle.

      Connect to maxscale with connection_timeout set to 30 seconds and execute the following:

      drop database if exists rick;
      create database rick;
      use rick;
      create table rick (id int not null);
      start transaction;
      insert into rick values(1000); 
      select sleep(35);
      insert into rick values(1001);
      commit;
      select * from rick where id=1000;
      

      As you can see this transaction is killed by maxscale every time.

      Thanks
      Rick

        Attachments

          Activity

            People

            Assignee:
            markus makela markus makela
            Reporter:
            rpizzi Rick Pizzi
            Votes:
            0 Vote for this issue
            Watchers:
            4 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.