-
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:
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.