From 545d0b22635322f8ba2f6d37ec55ea8b634efacd Mon Sep 17 00:00:00 2001 From: Wallace Date: Fri, 3 Sep 2021 14:20:26 +0800 Subject: [PATCH] fix version-check for ingested sst (#257) * fix check log seqno Signed-off-by: Little-Wallace Signed-off-by: tabokie --- db/version_builder.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/db/version_builder.cc b/db/version_builder.cc index 10908e323ee..fa6eec0a372 100644 --- a/db/version_builder.cc +++ b/db/version_builder.cc @@ -388,7 +388,12 @@ class VersionBuilder::Rep { // This is an external file that we ingested const SequenceNumber external_file_seqno = rhs->fd.smallest_seqno; - if (!(external_file_seqno < lhs->fd.largest_seqno || + // If lhs and rhs are both ingested files, their seqno may be same. + // Because RocksDB will assign only one seqno for all files ingested + // in once call by `IngestExternalFile`. + if (!((lhs->fd.smallest_seqno == lhs->fd.largest_seqno && + lhs->fd.smallest_seqno == external_file_seqno) || + external_file_seqno < lhs->fd.largest_seqno || external_file_seqno == 0)) { std::ostringstream oss; oss << "L0 file #" << lhs->fd.GetNumber() << " with seqno "