mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-28806 Assertion `flag == 1' failure in row_build_index_entry_low upon concurrent ALTER and UPDATE
- During online ADD INDEX, InnoDB was incorrectly writing log for an UPDATE that does not affect the being-created index.
This commit is contained in:
@@ -124,3 +124,24 @@ CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-28806 Assertion `flag == 1' failure in
|
||||
# row_build_index_entry_low upon concurrent ALTER and UPDATE
|
||||
#
|
||||
CREATE TABLE t1(a CHAR(8), b INT, c INT AS (b), KEY(a)) ENGINE=InnoDB;
|
||||
INSERT INTO t1(b) VALUES (1),(2);
|
||||
connect con1,localhost,root,,test;
|
||||
SET DEBUG_SYNC="alter_table_inplace_before_lock_upgrade SIGNAL dml_start WAIT_FOR dml_commit";
|
||||
ALTER TABLE t1 ADD KEY ind (c);
|
||||
connection default;
|
||||
SET DEBUG_SYNC="now WAIT_FOR dml_start";
|
||||
UPDATE t1 SET a ='foo';
|
||||
SET DEBUG_SYNC="now SIGNAL dml_commit";
|
||||
connection con1;
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
disconnect con1;
|
||||
connection default;
|
||||
SET DEBUG_SYNC=RESET;
|
||||
|
Reference in New Issue
Block a user