summaryrefslogtreecommitdiffstats
path: root/ydb/core/persqueue/sourceid.cpp
diff options
context:
space:
mode:
authorDaniil Cherednik <[email protected]>2022-09-21 20:17:38 +0300
committerDaniil Cherednik <[email protected]>2022-09-21 20:17:38 +0300
commite6c9b17192c56494adba359d5e132c431b241191 (patch)
tree6f2449871a118a0e8919ce842b1174e06cb470ef /ydb/core/persqueue/sourceid.cpp
parent285021ab1aac39e84b269d9bacd4deee69cf63fc (diff)
Ydb stable 22-4-2122.4.21
x-stable-origin-commit: e89099581237299a132feafb5b58af59ebd0468a
Diffstat (limited to 'ydb/core/persqueue/sourceid.cpp')
-rw-r--r--ydb/core/persqueue/sourceid.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/ydb/core/persqueue/sourceid.cpp b/ydb/core/persqueue/sourceid.cpp
index a63b2f6f705..01ddfa653d9 100644
--- a/ydb/core/persqueue/sourceid.cpp
+++ b/ydb/core/persqueue/sourceid.cpp
@@ -320,9 +320,12 @@ void TSourceIdStorage::LoadProtoSourceIdInfo(const TString& key, const TString&
void TSourceIdStorage::RegisterSourceIdInfo(const TString& sourceId, TSourceIdInfo&& sourceIdInfo, bool load) {
auto it = InMemorySourceIds.find(sourceId);
if (it != InMemorySourceIds.end()) {
- Y_VERIFY(!load);
- const auto res = SourceIdsByOffset.erase(std::make_pair(it->second.Offset, sourceId));
- Y_VERIFY(res == 1);
+ if (!load || it->second.Offset < sourceIdInfo.Offset) {
+ const auto res = SourceIdsByOffset.erase(std::make_pair(it->second.Offset, sourceId));
+ Y_VERIFY(res == 1);
+ } else {
+ return;
+ }
}
const auto offset = sourceIdInfo.Offset;