From 5f94954bb45e86e4c869b2d5cdb93cf24e234331 Mon Sep 17 00:00:00 2001 From: Zhen Ye Date: Mon, 13 Jan 2025 11:23:04 +0800 Subject: [PATCH] fix: data race when accessing field_ when retrieving (#39151) issue: #39148 Signed-off-by: chyezh --- internal/core/src/segcore/SegmentSealedImpl.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/core/src/segcore/SegmentSealedImpl.cpp b/internal/core/src/segcore/SegmentSealedImpl.cpp index 1944ca1086..4ccf68267b 100644 --- a/internal/core/src/segcore/SegmentSealedImpl.cpp +++ b/internal/core/src/segcore/SegmentSealedImpl.cpp @@ -1591,7 +1591,11 @@ SegmentSealedImpl::bulk_subscript( return fill_with_empty(field_id, 0); } - auto column = fields_.at(field_id); + std::shared_ptr column; + { + std::shared_lock lck(mutex_); + column = fields_.at(field_id); + } auto ret = fill_with_empty(field_id, count); if (column->IsNullable()) { auto dst = ret->mutable_valid_data()->mutable_data();