From 4826910908619f69d59305f6bc4c6ed399890de9 Mon Sep 17 00:00:00 2001 From: yangzhg Date: Fri, 10 Jul 2020 17:42:58 +0800 Subject: [PATCH 1/3] fix a core --- be/src/olap/rowset/segment_group.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/be/src/olap/rowset/segment_group.cpp b/be/src/olap/rowset/segment_group.cpp index bf8aea75440787..cf803b6d81f267 100644 --- a/be/src/olap/rowset/segment_group.cpp +++ b/be/src/olap/rowset/segment_group.cpp @@ -256,7 +256,9 @@ OLAPStatus SegmentGroup::add_zone_maps_for_linked_schema_change( int zonemap_col_num = get_num_zone_map_columns(); CHECK(zonemap_col_num <= schema_mapping.size()) << zonemap_col_num << " vs. " << schema_mapping.size(); - for (size_t i = 0; i < zonemap_col_num; ++i) { + // if uprade from 0.11 the zone map not contain the value column, so zone_map_fields.size() is less + // than zonemap_col_num, this may be cause core dump at access zone_map_fields by index in the following code + for (size_t i = 0; i < zonemap_col_num && i < zone_map_fields.size(); ++i) { const TabletColumn& column = _schema->column(i); WrapperField* first = WrapperField::create(column); From 1259bfe4b3086dd5f2e6720ff924fd798030e7e1 Mon Sep 17 00:00:00 2001 From: yangzhg <780531911@qq.com> Date: Fri, 10 Jul 2020 18:54:25 +0800 Subject: [PATCH 2/3] Update be/src/olap/rowset/segment_group.cpp Co-authored-by: wutiangan --- be/src/olap/rowset/segment_group.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/src/olap/rowset/segment_group.cpp b/be/src/olap/rowset/segment_group.cpp index cf803b6d81f267..31b7f022294517 100644 --- a/be/src/olap/rowset/segment_group.cpp +++ b/be/src/olap/rowset/segment_group.cpp @@ -256,7 +256,7 @@ OLAPStatus SegmentGroup::add_zone_maps_for_linked_schema_change( int zonemap_col_num = get_num_zone_map_columns(); CHECK(zonemap_col_num <= schema_mapping.size()) << zonemap_col_num << " vs. " << schema_mapping.size(); - // if uprade from 0.11 the zone map not contain the value column, so zone_map_fields.size() is less + // if upgrade from 0.11 the zone map not contain the value column, so zone_map_fields.size() is less // than zonemap_col_num, this may be cause core dump at access zone_map_fields by index in the following code for (size_t i = 0; i < zonemap_col_num && i < zone_map_fields.size(); ++i) { const TabletColumn& column = _schema->column(i); From aae67a9736c10b17996994fcc9bc698e296b3ea9 Mon Sep 17 00:00:00 2001 From: Zhengguo Yang <780531911@qq.com> Date: Mon, 13 Jul 2020 21:01:48 +0800 Subject: [PATCH 3/3] Update segment_group.cpp --- be/src/olap/rowset/segment_group.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/be/src/olap/rowset/segment_group.cpp b/be/src/olap/rowset/segment_group.cpp index 31b7f022294517..d0fb439a6b8dd0 100644 --- a/be/src/olap/rowset/segment_group.cpp +++ b/be/src/olap/rowset/segment_group.cpp @@ -257,7 +257,8 @@ OLAPStatus SegmentGroup::add_zone_maps_for_linked_schema_change( int zonemap_col_num = get_num_zone_map_columns(); CHECK(zonemap_col_num <= schema_mapping.size()) << zonemap_col_num << " vs. " << schema_mapping.size(); // if upgrade from 0.11 the zone map not contain the value column, so zone_map_fields.size() is less - // than zonemap_col_num, this may be cause core dump at access zone_map_fields by index in the following code + // than zonemap_col_num, this may be cause core dump at access zone_map_fields by index in the following code, + // so check the zone_map_fields.size() to set the actual zone map fields for (size_t i = 0; i < zonemap_col_num && i < zone_map_fields.size(); ++i) { const TabletColumn& column = _schema->column(i);