Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3(EOL), 10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL)
-
None
Description
The test case below fails nearly deterministically (but not quite, so run with --repeat=N) on 10.3, 10.4 and 10.6+ since the commit 1562b2c20b5 (MDEV-29666).
A recent comment in MDEV-20640 seems to suggest it may be a probability issue. I'm not so sure about it. This test fails on the 1st-2nd attempt after the change and didn't fail in 1000 attempts before the change, so how big the change in probability it must have been? And even if it was, it is still a regression from a very remotely possible problem to a very real one.
--source include/have_innodb.inc
|
|
CREATE TABLE t (a BINARY(8) NOT NULL DEFAULT '', b CHAR(8) AS (a) VIRTUAL, KEY(b(4))) CHARACTER SET utf8 ENGINE=InnoDB; |
INSERT INTO t (a) VALUES (''),(''); |
UPDATE t SET a = 'x'; |
UPDATE t SET a = ''; |
|
--sleep 1
|
|
# Cleanup
|
DROP TABLE t; |
10.3 df4c3d96 |
2022-11-17 0:10:54 3 [ERROR] InnoDB: tried to purge non-delete-marked record in index `b` of table `test`.`t`: tuple: TUPLE (info_bits=0, 2 fields): {[4] (0x00000000),[6] (0x000000000200)}, record: COMPACT RECORD(info_bits=0, 2 fields): {[4] (0x00000000),[6] (0x000000000200)}
|
mysqld: /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/row/row0purge.cc:599: bool row_purge_remove_sec_if_poss_leaf(purge_node_t*, dict_index_t*, const dtuple_t*): Assertion `0' failed.
|
|
#7 0x00007f1da665c662 in __GI___assert_fail (assertion=0x560bc03a8a80 "0", file=0x560bc03aae00 "/home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/row/row0purge.cc", line=599, function=0x560bc03ab940 "bool row_purge_remove_sec_if_poss_leaf(purge_node_t*, dict_index_t*, const dtuple_t*)") at assert.c:101
|
#8 0x0000560bbf21d918 in row_purge_remove_sec_if_poss_leaf (node=0x61a000002508, index=0x618000048508, entry=0x619000051f08) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/row/row0purge.cc:599
|
#9 0x0000560bbf21df45 in row_purge_remove_sec_if_poss (node=0x61a000002508, index=0x618000048508, entry=0x619000051f08) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/row/row0purge.cc:695
|
#10 0x0000560bbf21fb37 in row_purge_upd_exist_or_extern_func (thr=0x616000006dd0, node=0x61a000002508, undo_rec=0x613000002060 "") at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/row/row0purge.cc:897
|
#11 0x0000560bbf223734 in row_purge_record_func (node=0x61a000002508, undo_rec=0x613000002060 "", thr=0x616000006dd0, updated_extern=false) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/row/row0purge.cc:1342
|
#12 0x0000560bbf223af6 in row_purge (node=0x61a000002508, undo_rec=0x613000002060 "", thr=0x616000006dd0) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/row/row0purge.cc:1386
|
#13 0x0000560bbf2240b4 in row_purge_step (thr=0x616000006dd0) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/row/row0purge.cc:1464
|
#14 0x0000560bbf100937 in que_thr_step (thr=0x616000006dd0) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/que/que0que.cc:966
|
#15 0x0000560bbf100d6e in que_run_threads_low (thr=0x616000006dd0) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/que/que0que.cc:1028
|
#16 0x0000560bbf101194 in que_run_threads (thr=0x616000006dd0) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/que/que0que.cc:1068
|
#17 0x0000560bbf2c9010 in srv_task_execute (slot=0x560bc10049b8 <srv_sys+1016>) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/srv/srv0srv.cc:2452
|
#18 0x0000560bbf2c93a9 in srv_worker_thread (arg=0x0) at /home/jenkins/workspace/sandbox-elenst/Nightly-Build-CS/src/storage/innobase/srv/srv0srv.cc:2507
|
#19 0x00007f1da6807ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
|
#20 0x00007f1da6727aef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
|
10.6 ae6ebafd |
2022-11-17 0:23:22 0 [ERROR] InnoDB: tried to purge non-delete-marked record in index `b` of table `test`.`t`: tuple: TUPLE (info_bits=0, 2 fields): {[4] (0x00000000),[6] (0x000000000200)}, record: COMPACT RECORD(info_bits=0, 2 fields): {[4] (0x00000000),[6] (0x000000000200)}
|
2022-11-17 0:23:22 0 [ERROR] InnoDB: Flagged corruption of `b` in table `test`.`t` in purge
|
Attachments
Issue Links
- is caused by
-
MDEV-29666 InnoDB fails to purge secondary index records when indexed virtual columns exist
- Closed
- links to