diff --git a/src/storage/memtable/mvcc/ob_query_engine.cpp b/src/storage/memtable/mvcc/ob_query_engine.cpp index 63af69d537..62e4a42cf1 100644 --- a/src/storage/memtable/mvcc/ob_query_engine.cpp +++ b/src/storage/memtable/mvcc/ob_query_engine.cpp @@ -513,6 +513,7 @@ int ObQueryEngine::split_range(const ObMemtableKey *start_key, } else { bool need_retry = false; do { + need_retry = false; // Here we can not use ESTIMATE_CHILD_COUNT_THRESHOLD to init SEArray due to the stack size limit ObSEArray key_array; if (OB_FAIL(find_split_range_level_(start_key, end_key, range_count, top_level, btree_node_count)) && @@ -553,7 +554,7 @@ int ObQueryEngine::split_range(const ObMemtableKey *start_key, raw_iter_alloc_.free(iter); iter = NULL; } - } while (need_retry); + } while (OB_SUCC(ret) && need_retry); } return ret; }