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

    XMLWordPrintable

    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.

       

        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

                  Smart Checklist