diff --git a/src/storage/compaction/ob_partition_merge_builder.cpp b/src/storage/compaction/ob_partition_merge_builder.cpp index 774a30e60c52e08b6e263ba92c25ed6ae238ab4a..8abee9b3ec06348faebafe5747b4c4dcdac9e7a1 100644 --- a/src/storage/compaction/ob_partition_merge_builder.cpp +++ b/src/storage/compaction/ob_partition_merge_builder.cpp @@ -124,10 +124,13 @@ int ObMacroBlockBuilder::open(storage::ObSSTableMergeCtx& ctx, const int64_t idx ctx.sstable_version_range_.snapshot_version_, ctx.log_ts_range_.end_log_ts_))) { STORAGE_LOG(WARN, "fail to init mark deletion maker, skip maker", K(ret)); + mark_deletion_maker_->~ObBlockMarkDeletionMaker(); mark_deletion_maker_ = NULL; ret = OB_SUCCESS; + desc_.mark_deletion_maker_ = NULL; + } else { + desc_.mark_deletion_maker_ = mark_deletion_maker_; } - desc_.mark_deletion_maker_ = mark_deletion_maker_; } } else { desc_.mark_deletion_maker_ = NULL; diff --git a/src/storage/memtable/ob_memtable_iterator.cpp b/src/storage/memtable/ob_memtable_iterator.cpp index 4eb2cc9770f05a4ced02b82413d530bdeecab2c5..3164cc883e4e6a8579504a3ee4884def42799078 100644 --- a/src/storage/memtable/ob_memtable_iterator.cpp +++ b/src/storage/memtable/ob_memtable_iterator.cpp @@ -240,7 +240,6 @@ int ObMemtableScanIterator::prepare_scan() TRANS_LOG(WARN, "get snapshot info failed", K(ret)); } else if (OB_FAIL(get_real_range(cur_range_.get_range(), range))) { TRANS_LOG(WARN, "fail to get_real_range", K(ret), K(cur_range_)); - ret = OB_ITER_END; } else if (OB_FAIL(ObMemtableKey::build( start_key, param_->table_id_, *param_->out_cols_, &range.get_start_key(), *context_->allocator_))) { TRANS_LOG(WARN, "start key build fail", K(param_->table_id_), K(range));