Uploaded image for project: 'Percona Server for MySQL'
  1. Percona Server for MySQL
  2. PS-4538

Fix for PS-3919 introduces test failures for rocksdb.rocksdb.part and rocksdb.partition

    Details

    • Type: Bug
    • Status: Done
    • Priority: Medium
    • Resolution: Fixed
    • Affects Version/s: 5.7.21-21
    • Fix Version/s: 5.7.23-23
    • Component/s: None
    • Labels:

      Description

      The change for PS-3919 is intersecting with gap lock detection logic somehow and causing some new test failures :

       

      rocksdb.rocksdb_parts 'write_prepared' w2 [ fail ]
      Test ended at 2018-06-20 11:04:28
      
      CURRENT_TEST: rocksdb.rocksdb_parts
      --- /ssd/percona/MYR/percona-server-install-5.7/mysql-test/suite/rocksdb/r/rocksdb_parts.result 2018-05-15 21:24:39.000000000 +0300
      +++ /ssd/percona/MYR/percona-server-install-5.7/mysql-test/var/2/log/rocksdb_parts.reject 2018-06-20 21:04:28.174347445 +0300
      @@ -35,7 +35,9 @@
      UPDATE t1 SET id=8 WHERE c < 8 LIMIT 1;
      check table t1;
      Table Op Msg_type Msg_text
      -test.t1 check status OK
      +test.t1 check error Partition p0 returned error
      +test.t1 check Error Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need to either rewrite queries to use all unique key columns in WHERE equal conditions, or rewrite to single-table, single-statement transaction. Query: check table t1
      +test.t1 check error Unknown - internal error 149 during operation
      test.t1 check warning The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead.
      drop table t1;
      # 
      
      mysqltest: Result content mismatch
      

      and

      rocksdb.sys_vars.rocksdb_create_missing_column_families_basic w3 [ pass ] 40
      rocksdb.partition 'write_prepared' w8 [ fail ]
      Test ended at 2018-06-20 11:15:16
      
      CURRENT_TEST: rocksdb.partition
      --- /ssd/percona/MYR/percona-server-install-5.7/mysql-test/suite/rocksdb/r/partition.result 2018-05-15 21:24:39.000000000 +0300
      +++ /ssd/percona/MYR/percona-server-install-5.7/mysql-test/var/8/log/partition.reject 2018-06-20 21:15:16.642367311 +0300
      @@ -12,10 +12,14 @@
      test.t1 analyze status OK
      test.t1 analyze warning The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead.
      Table Op Msg_type Msg_text
      -test.t1 repair status OK
      +test.t1 repair error Partition p0 returned error
      +test.t1 repair Error Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need to either rewrite queries to use all unique key columns in WHERE equal conditions, or rewrite to single-table, single-statement transaction. Query: ALTER TABLE t1 REPAIR PARTITION p0,p1
      +test.t1 repair error Unknown - internal error 149 during operation
      test.t1 repair warning The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead.
      Table Op Msg_type Msg_text
      -test.t1 check status OK
      +test.t1 check error Partition p1 returned error
      +test.t1 check Error Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need to either rewrite queries to use all unique key columns in WHERE equal conditions, or rewrite to single-table, single-statement transaction. Query: ALTER TABLE t1 CHECK PARTITION p1
      +test.t1 check error Unknown - internal error 149 during operation
      test.t1 check warning The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead.
      Warnings:
      Warning 1287 The partition engine, used by table 'test.TEMP0', is deprecated and will be removed in a future release. Please use native partitioning instead.
      @@ -39,6 +43,8 @@
      8 8 8
      9 9 9
      10 10 10
      +Warnings:
      +Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead.
      SELECT COUNT(*) FROM t1;
      COUNT(*)
      1000
      
      mysqltest: Result content mismatch
      

       

      It is very possible that these new failures are valid and this fix exposed a hole in gap lock detection, or, it could be that these failures are now to be expected with this fix in place and tests need to be manipulated to avoid the gap locking in these cases.

       

        Smart Checklist

          Attachments

            Activity

              People

              • Assignee:
                zsolt.parragi Zsolt Parragi
                Reporter:
                george.lorch George Lorch
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 6 hours
                  6h