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

On slave XA COMMIT/XA ROLLBACK fail to return an error in read-only mode

Details

    Description

      On slave , Non-super users can able to execute XA COMMIT/XA ROLLBACK.
      slave fails to return an error in read-only mode. It causes the slave to break replication when gtid_strict_mode is enabled.

      On Master:

      MariaDB [test]> select @@read_only;
      +-------------+
      | @@read_only |
      +-------------+
      |           0 |
      +-------------+
      1 row in set (0.000 sec)
      MariaDB [test]> XA START 'MyXA';
      Query OK, 0 rows affected (0.001 sec)
       
      MariaDB [test]> INSERT INTO test.t1 VALUES(1);
      Query OK, 1 row affected (0.001 sec)
       
      MariaDB [test]> XA END 'MyXA';
      Query OK, 0 rows affected (0.000 sec)
       
      MariaDB [test]> XA PREPARE 'MyXA';
      Query OK, 0 rows affected (0.003 sec)
      

      On slave:

      MariaDB [(none)]> select @@read_only;
      +-------------+
      | @@read_only |
      +-------------+
      |           1 |
      +-------------+
      1 row in set (0.001 sec)
       
      MariaDB [test]> show grants;
      +---------------------------------------------------------------------------------------------------------+
      | Grants for app_user@%                                                                                   |
      +---------------------------------------------------------------------------------------------------------+
      | GRANT USAGE ON *.* TO "app_user"@"%" IDENTIFIED BY PASSWORD '*8232A1298A49F710DBEE0B330C42EEC825D4190A' |
      | GRANT SELECT, INSERT, UPDATE, DELETE ON "test".* TO "app_user"@"%"                                      |
      +---------------------------------------------------------------------------------------------------------+
      2 rows in set (0.001 sec)
       
      MariaDB [(none)]> XA COMMIT 'MyXA';
      Query OK, 0 rows affected (0.004 sec)
      
      

      on Slave:

       
      MariaDB [test]> select @@read_only;
      +-------------+
      | @@read_only |
      +-------------+
      |           1 |
      +-------------+
      1 row in set (0.000 sec)
       
      MariaDB [test]> show grants;
      +---------------------------------------------------------------------------------------------------------+
      | Grants for app_user@%                                                                                   |
      +---------------------------------------------------------------------------------------------------------+
      | GRANT USAGE ON *.* TO "app_user"@"%" IDENTIFIED BY PASSWORD '*8232A1298A49F710DBEE0B330C42EEC825D4190A' |
      | GRANT SELECT, INSERT, UPDATE, DELETE ON "test".* TO "app_user"@"%"                                      |
      +---------------------------------------------------------------------------------------------------------+
      2 rows in set (0.001 sec)
       
      MariaDB [test]> XA ROLLBACK 'MyXA';
      Query OK, 0 rows affected (0.005 sec)
      
      

      Attachments

        Activity

          pandi.gurusamy Pandikrishnan Gurusamy created issue -
          pandi.gurusamy Pandikrishnan Gurusamy made changes -
          Field Original Value New Value
          Component/s XA [ 12400 ]
          pandi.gurusamy Pandikrishnan Gurusamy made changes -
          Fix Version/s 10.3 [ 22126 ]
          Fix Version/s 10.4 [ 22408 ]
          Fix Version/s 10.5 [ 23123 ]
          Fix Version/s 10.6 [ 24028 ]
          pandi.gurusamy Pandikrishnan Gurusamy made changes -
          Affects Version/s 10.3 [ 22126 ]
          Affects Version/s 10.4 [ 22408 ]
          Affects Version/s 10.5 [ 23123 ]
          Affects Version/s 10.6 [ 24028 ]
          pandi.gurusamy Pandikrishnan Gurusamy made changes -
          Description On slave XA COMMIT/XA ROLLBACK fail to return an error in read-only mode. It cause slave to break replication when gtid_strict_mode is enable.

          On Master:
          {code}
          MariaDB [test]> select @@read_only;
          +-------------+
          | @@read_only |
          +-------------+
          | 0 |
          +-------------+
          1 row in set (0.000 sec)
          MariaDB [test]> XA START 'MyXA';
          Query OK, 0 rows affected (0.001 sec)

          MariaDB [test]> INSERT INTO test.t1 VALUES(1);
          Query OK, 1 row affected (0.001 sec)

          MariaDB [test]> XA END 'MyXA';
          Query OK, 0 rows affected (0.000 sec)

          MariaDB [test]> XA PREPARE 'MyXA';
          Query OK, 0 rows affected (0.003 sec)
          {code}


          On slave:
          {code}
          MariaDB [(none)]> select @@read_only;
          +-------------+
          | @@read_only |
          +-------------+
          | 1 |
          +-------------+
          1 row in set (0.001 sec)

          MariaDB [(none)]> XA COMMIT 'MyXA';
          Query OK, 0 rows affected (0.004 sec)

          {code}
          On slave , Non-super users can able to execute XA COMMIT/XA ROLLBACK.
          slave fails to return an error in read-only mode. It causes the slave to break replication when gtid_strict_mode is enabled.

          On Master:
          {code}
          MariaDB [test]> select @@read_only;
          +-------------+
          | @@read_only |
          +-------------+
          | 0 |
          +-------------+
          1 row in set (0.000 sec)
          MariaDB [test]> XA START 'MyXA';
          Query OK, 0 rows affected (0.001 sec)

          MariaDB [test]> INSERT INTO test.t1 VALUES(1);
          Query OK, 1 row affected (0.001 sec)

          MariaDB [test]> XA END 'MyXA';
          Query OK, 0 rows affected (0.000 sec)

          MariaDB [test]> XA PREPARE 'MyXA';
          Query OK, 0 rows affected (0.003 sec)
          {code}


          On slave:
          {code}
          MariaDB [(none)]> select @@read_only;
          +-------------+
          | @@read_only |
          +-------------+
          | 1 |
          +-------------+
          1 row in set (0.001 sec)

          MariaDB [test]> show grants;
          +---------------------------------------------------------------------------------------------------------+
          | Grants for app_user@% |
          +---------------------------------------------------------------------------------------------------------+
          | GRANT USAGE ON *.* TO "app_user"@"%" IDENTIFIED BY PASSWORD '*8232A1298A49F710DBEE0B330C42EEC825D4190A' |
          | GRANT SELECT, INSERT, UPDATE, DELETE ON "test".* TO "app_user"@"%" |
          +---------------------------------------------------------------------------------------------------------+
          2 rows in set (0.001 sec)

          MariaDB [(none)]> XA COMMIT 'MyXA';
          Query OK, 0 rows affected (0.004 sec)

          {code}


          on Slave:

          {code}

          MariaDB [test]> select @@read_only;
          +-------------+
          | @@read_only |
          +-------------+
          | 1 |
          +-------------+
          1 row in set (0.000 sec)

          MariaDB [test]> show grants;
          +---------------------------------------------------------------------------------------------------------+
          | Grants for app_user@% |
          +---------------------------------------------------------------------------------------------------------+
          | GRANT USAGE ON *.* TO "app_user"@"%" IDENTIFIED BY PASSWORD '*8232A1298A49F710DBEE0B330C42EEC825D4190A' |
          | GRANT SELECT, INSERT, UPDATE, DELETE ON "test".* TO "app_user"@"%" |
          +---------------------------------------------------------------------------------------------------------+
          2 rows in set (0.001 sec)

          MariaDB [test]> XA ROLLBACK 'MyXA';
          Query OK, 0 rows affected (0.005 sec)

          {code}

          pandi.gurusamy Pandikrishnan Gurusamy made changes -
          Assignee Andrei Elkin [ elkin ]
          julien.fritsch Julien Fritsch made changes -
          Fix Version/s 10.4 [ 22408 ]
          Fix Version/s 10.5 [ 23123 ]
          Fix Version/s 10.6 [ 24028 ]
          Fix Version/s 10.3 [ 22126 ]
          julien.fritsch Julien Fritsch made changes -
          Status Open [ 1 ] Needs Feedback [ 10501 ]

          As far as I can see, the test case (or the basic idea behind it) in the issue Description.

          valerii Valerii Kravchuk added a comment - As far as I can see, the test case (or the basic idea behind it) in the issue Description.
          valerii Valerii Kravchuk made changes -
          Status Needs Feedback [ 10501 ] Open [ 1 ]
          julien.fritsch Julien Fritsch made changes -
          Status Open [ 1 ] Confirmed [ 10101 ]
          julien.fritsch Julien Fritsch made changes -
          Priority Major [ 3 ] Critical [ 2 ]
          julien.fritsch Julien Fritsch made changes -
          Fix Version/s 10.3 [ 22126 ]
          Elkin Andrei Elkin added a comment -

          Also see a somewhat related MDEV-13437, which backs up the correct polity, to implement.

          Elkin Andrei Elkin added a comment - Also see a somewhat related MDEV-13437 , which backs up the correct polity, to implement.
          Elkin Andrei Elkin made changes -
          Status Confirmed [ 10101 ] In Progress [ 3 ]
          julien.fritsch Julien Fritsch made changes -
          Assignee Andrei Elkin [ elkin ] Brandon Nesterenko [ JIRAUSER48702 ]
          bnestere Brandon Nesterenko made changes -
          Affects Version/s 10.7 [ 24805 ]
          Affects Version/s 10.8 [ 26121 ]
          Affects Version/s 10.9 [ 26905 ]
          Affects Version/s 10.10 [ 27530 ]
          Affects Version/s 10.11 [ 27614 ]
          Affects Version/s 11.0 [ 28320 ]
          Affects Version/s 11.1 [ 28549 ]
          Affects Version/s 10.3 [ 22126 ]
          Affects Version/s 10.4 [ 22408 ]
          bnestere Brandon Nesterenko made changes -
          Fix Version/s 10.4 [ 22408 ]

          Hi Andrei!

          This is ready for review as PR-2678.

          bnestere Brandon Nesterenko added a comment - Hi Andrei! This is ready for review as PR-2678 .
          bnestere Brandon Nesterenko made changes -
          Assignee Brandon Nesterenko [ JIRAUSER48702 ] Andrei Elkin [ elkin ]
          Status In Progress [ 3 ] In Review [ 10002 ]
          ralf.gebhardt Ralf Gebhardt made changes -
          bnestere Brandon Nesterenko made changes -
          Assignee Andrei Elkin [ elkin ] Brandon Nesterenko [ JIRAUSER48702 ]

          Pushed into 10.5 as 9808ebe19.

          No merge conflicts/test failures observed through manual cherry picking into 11.2.

          bnestere Brandon Nesterenko added a comment - Pushed into 10.5 as 9808ebe19 . No merge conflicts/test failures observed through manual cherry picking into 11.2.
          bnestere Brandon Nesterenko made changes -
          issue.field.resolutiondate 2023-07-11 17:40:09.0 2023-07-11 17:40:09.257
          bnestere Brandon Nesterenko made changes -
          Component/s Replication [ 10100 ]
          Fix Version/s 10.5.22 [ 29011 ]
          Fix Version/s 10.6.15 [ 29013 ]
          Fix Version/s 10.9.8 [ 29015 ]
          Fix Version/s 10.10.6 [ 29017 ]
          Fix Version/s 10.11.5 [ 29019 ]
          Fix Version/s 11.0.3 [ 28920 ]
          Fix Version/s 11.1.2 [ 28921 ]
          Fix Version/s 10.5 [ 23123 ]
          Fix Version/s 10.6 [ 24028 ]
          Resolution Fixed [ 1 ]
          Status In Review [ 10002 ] Closed [ 6 ]
          Elkin Andrei Elkin made changes -
          Labels replication server xa
          mariadb-jira-automation Jira Automation (IT) made changes -
          Zendesk Related Tickets 115837

          People

            bnestere Brandon Nesterenko
            pandi.gurusamy Pandikrishnan Gurusamy
            Votes:
            1 Vote for this issue
            Watchers:
            6 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.