Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
10.2.2, 10.3.0
Description
The function row_build_index_entry_low() is attempting to fetch the value of a virtual TEXT column from a cache of stored off-page column prefixes, causing a failure.
Bug #27968952 INNODB CRASH/CORRUPTION WITH TEXT PREFIX INDEXES in MySQL 5.7.24 addresses this.
Here is a little clearer and somewhat extended test case:
CREATE TABLE t1( |
a INT NOT NULL UNIQUE, |
b INT NOT NULL, |
c TEXT GENERATED ALWAYS AS (a <> b) VIRTUAL, |
d TEXT NOT NULL, |
UNIQUE KEY (c(1)), KEY(d(1)) |
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
SET @t = REPEAT('t',@@innodb_page_size); |
INSERT INTO t1 (a,b,d) VALUES (1,0,@t), (0,0,@t); |
--error ER_DUP_ENTRY
|
UPDATE t1 SET b = a; |
REPLACE INTO t1 SET a = 0, b = 1, d = 'd'; |
SELECT * FROM t1; |
CHECK TABLE t1; |
DROP TABLE t1; |
|
CREATE TABLE t1( |
a VARCHAR(1000) GENERATED ALWAYS AS ('1') VIRTUAL, |
b VARCHAR(1000) NOT NULL, |
c VARCHAR(1000) GENERATED ALWAYS AS (b) STORED, |
KEY (b(1)), |
KEY (a(1)) |
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
INSERT INTO t1(b) VALUES(REPEAT('b',1000)); |
DELETE FROM t1; |
DROP TABLE t1; |
10.2 a21e01a53d309c4c949d41f85a43211008bac1fc |
mysqltest: At line …: query 'UPDATE t1 SET b = a' failed with wrong errno 2013: 'Lost connection to MySQL server during query', instead of 1062...
|
…
|
Version: '10.2.19-MariaDB-debug-log' socket: '/dev/shm/10.2/mysql-test/var/tmp/mysqld.1.sock' port: 16000 Source distribution
|
2018-10-25 16:57:29 140274706073344 [ERROR] InnoDB: Record in index `c` of table `test`.`t1` was not found on update: TUPLE (info_bits=0, 2 fields): {[1]t(0x74),[4] (0x80000001)} at: COMPACT RECORD(info_bits=0, 2 fields): {[1]1(0x31),[4] (0x80000001)}
|
mysqld: /mariadb/10.2m/storage/innobase/row/row0upd.cc:2436: dberr_t row_upd_sec_index_entry(upd_node_t*, que_thr_t*): Assertion `0' failed.
|
Attachments
Issue Links
- blocks
-
MDEV-17536 Merge new release of InnoDB 5.7.24 to 10.2
- Closed
- relates to
-
MDEV-14134 gcol.innodb_virtual_debug sporadically failed in buildbot, row0upd.cc:2427: dberr_t row_upd_sec_index_entry(upd_node_t*, que_thr_t*): Assertion `0' failed
- Closed
-
MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf on table with virtual columns and indexes
- Closed