summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorAakanksha Verma <aakanksha.verma@oracle.com>2018-02-08 01:25:10 +0530
committerMarko Mäkelä <marko.makela@mariadb.com>2018-05-11 19:10:32 +0300
commit4c7ea34ef691e1a2ed243959de016abb3df32611 (patch)
treeeada0540a3f81c357360253abf5fdf48dccbf761 /storage
parent279f992b85bf024d4d6031a79bf41741da73c949 (diff)
downloadmariadb-git-4c7ea34ef691e1a2ed243959de016abb3df32611.tar.gz
FOLLOW-UP FIX FOR BUG#27141613
PROBLEM Issue found during ntest run is a regression of Bug #27141613. The issue is basically when index is being freed due to an error during its creation,when the index isn't added to dictionary cache its field columns are not set, the derefrencing of null col pointer during the clean of index from the virtual column's leads to a crash. NOTE: Also test i_innodb.virtual_debug was failing on 32k page size and above for the newly added scenario. Fixed that. FIX Added a check that if only the index is cached , the virtual index freeing from the virtual cols index list is performed. Reviewed by: Satya Bodapati<satya.bodapati@oracle.com> RB: 18670
Diffstat (limited to 'storage')
-rw-r--r--storage/innobase/dict/dict0dict.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/storage/innobase/dict/dict0dict.cc b/storage/innobase/dict/dict0dict.cc
index 42378d5520d..4751add93d5 100644
--- a/storage/innobase/dict/dict0dict.cc
+++ b/storage/innobase/dict/dict0dict.cc
@@ -2433,7 +2433,10 @@ being freed.
@param[in] index Index being freed */
void
dict_index_remove_from_v_col_list(dict_index_t* index) {
-
+ /* Index is not completely formed */
+ if (!index->cached) {
+ return;
+ }
if (dict_index_has_virtual(index)) {
const dict_col_t* col;
const dict_v_col_t* vcol;