From 040328a30d1ae7f3df3b8e17877833d6ad8dab57 Mon Sep 17 00:00:00 2001 From: Yueh-Hsuan Chiang Date: Thu, 13 Oct 2016 14:26:57 -0700 Subject: [PATCH] Remove an assertion for single-delete in MergeHelper::MergeUntil Summary: Previously we have an assertion which triggers when we issue Merges after a single delete. However, merges after a single delete are unrelated to that single delete. Thus this behavior should be allowed. This will address a flakyness of db_stress. Test Plan: db_stress Reviewers: IslamAbdelRahman, sdong Reviewed By: sdong Subscribers: andrewkr, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D64923 --- db/merge_helper.cc | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/db/merge_helper.cc b/db/merge_helper.cc index a3d3823fc..9eefd402c 100644 --- a/db/merge_helper.cc +++ b/db/merge_helper.cc @@ -128,17 +128,8 @@ Status MergeHelper::MergeUntil(InternalIterator* iter, assert(IsValueType(ikey.type)); if (ikey.type != kTypeMerge) { - if (ikey.type != kTypeValue && ikey.type != kTypeDeletion) { - // Merges operands can only be used with puts and deletions, single - // deletions are not supported. - assert(false); - // release build doesn't have asserts, so we return error status - return Status::InvalidArgument( - " Merges operands can only be used with puts and deletions, single " - "deletions are not supported."); - } - // hit a put/delete + // hit a put/delete/single delete // => merge the put value or a nullptr with operands_ // => store result in operands_.back() (and update keys_.back()) // => change the entry type to kTypeValue for keys_.back()