diff options
author | Annamalai Gurusami <annamalai.gurusami@oracle.com> | 2015-05-09 13:24:01 +0530 |
---|---|---|
committer | Annamalai Gurusami <annamalai.gurusami@oracle.com> | 2015-05-09 13:24:01 +0530 |
commit | e7b6e814bea7a9e21ef864016bde39fd65a7f655 (patch) | |
tree | 6d9fd35d874bb2a469eca9ddac02279aaac57ac4 /mysql-test/r/myisam_recover.result | |
parent | f5ac718b1db7a012d113b051ef74932c6e0a29df (diff) | |
download | mariadb-git-e7b6e814bea7a9e21ef864016bde39fd65a7f655.tar.gz |
Bug #19138298 RECORD IN INDEX WAS NOT FOUND ON ROLLBACK, TRYING TO INSERT
Scenario:
1. The purge thread takes an undo log record and parses it and forms
the record to be purged. We have the primary and secondary keys
to locate the actual records.
2. Using the secondary index key, we search in the secondary index.
One record is found.
3. Then it is checked if this record can be purged. The answer is we
can purge this record. To determine this we look up the clustered
index record. Either there is no corresponding clustered index
record, or the matching clustered index record is delete marked.
4. Then we check whether the secondary index record is delete marked.
We find that it is not delete marked. We report warning in optimized
build and assert in debug build.
Problem:
In step 3, we report that the record is purgeable even though it is
not delete marked. This is because of inconsistency between the
following members of purge_node_t structure - found_clust, ref and pcur.
Solution:
In the row_purge_reposition_pcur(), if the persistent cursor restore
fails, then reset the purge_node_t->found_clust member. This will
keep the members of purge_node_t structure in a consistent state.
rb#8813 approved by Marko.
Diffstat (limited to 'mysql-test/r/myisam_recover.result')
0 files changed, 0 insertions, 0 deletions