diff options
author | Daniil Cherednik <[email protected]> | 2022-09-21 20:17:38 +0300 |
---|---|---|
committer | Daniil Cherednik <[email protected]> | 2022-09-21 20:17:38 +0300 |
commit | e6c9b17192c56494adba359d5e132c431b241191 (patch) | |
tree | 6f2449871a118a0e8919ce842b1174e06cb470ef /ydb/core/persqueue/sourceid.cpp | |
parent | 285021ab1aac39e84b269d9bacd4deee69cf63fc (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.cpp | 9 |
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; |