diff options
author | Aakanksha Verma <aakanksha.verma@oracle.com> | 2018-02-08 01:25:10 +0530 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2018-05-11 19:10:32 +0300 |
commit | 4c7ea34ef691e1a2ed243959de016abb3df32611 (patch) | |
tree | eada0540a3f81c357360253abf5fdf48dccbf761 /storage | |
parent | 279f992b85bf024d4d6031a79bf41741da73c949 (diff) | |
download | mariadb-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.cc | 5 |
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; |