From 84114944a06e3528c118f91cbf5f9f4c9a505920 Mon Sep 17 00:00:00 2001 From: BossZou <40255591+BossZou@users.noreply.github.com> Date: Mon, 24 Aug 2020 23:34:35 +0800 Subject: [PATCH] Fix Server crashed during random test (#3436) Signed-off-by: yinghao.zou --- core/src/segment/SegmentReader.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/core/src/segment/SegmentReader.cpp b/core/src/segment/SegmentReader.cpp index ad7f03d2cf..0c3a9c078a 100644 --- a/core/src/segment/SegmentReader.cpp +++ b/core/src/segment/SegmentReader.cpp @@ -259,12 +259,14 @@ SegmentReader::LoadVectorIndex(const std::string& field_name, knowhere::VecIndex return Status(DB_ERROR, "Field is not vector type"); } + // load uids + std::vector uids; + STATUS_CHECK(LoadUids(uids)); + // load deleted doc auto& segment = segment_visitor_->GetSegment(); - auto& snapshot = segment_visitor_->GetSnapshot(); - auto segment_commit = snapshot->GetSegmentCommitBySegmentId(segment->GetID()); - faiss::ConcurrentBitsetPtr concurrent_bitset_ptr = - std::make_shared(segment_commit->GetRowCount()); + + faiss::ConcurrentBitsetPtr concurrent_bitset_ptr = std::make_shared(uids.size()); segment::DeletedDocsPtr deleted_docs_ptr; STATUS_CHECK(LoadDeletedDocs(deleted_docs_ptr)); @@ -275,10 +277,6 @@ SegmentReader::LoadVectorIndex(const std::string& field_name, knowhere::VecIndex } } - // load uids - std::vector uids; - STATUS_CHECK(LoadUids(uids)); - knowhere::BinarySet index_data; knowhere::BinaryPtr raw_data, compress_data; @@ -304,7 +302,7 @@ SegmentReader::LoadVectorIndex(const std::string& field_name, knowhere::VecIndex engine::BinaryDataPtr raw; STATUS_CHECK(LoadField(field_name, raw, false)); - auto dataset = knowhere::GenDataset(segment_commit->GetRowCount(), dimension, raw->data_.data()); + auto dataset = knowhere::GenDataset(uids.size(), dimension, raw->data_.data()); // construct IDMAP index knowhere::VecIndexFactory& vec_index_factory = knowhere::VecIndexFactory::GetInstance();