aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralexbogo <alexbogo@ydb.tech>2022-10-18 15:26:34 +0300
committeralexbogo <alexbogo@ydb.tech>2022-10-18 15:26:34 +0300
commit28a69e75259ba949f9d8cc24bc30c738272635ce (patch)
treec24bd0eed9d05e1047d9052ad68543982afa27fd
parentcab6b0b6313a7a5a5be6f2761197e0e555f84d06 (diff)
downloadydb-28a69e75259ba949f9d8cc24bc30c738272635ce.tar.gz
[ymq] detect queue changes by version changes
init
-rw-r--r--ydb/core/ymq/actor/events.h6
-rw-r--r--ydb/core/ymq/actor/service.cpp8
2 files changed, 7 insertions, 7 deletions
diff --git a/ydb/core/ymq/actor/events.h b/ydb/core/ymq/actor/events.h
index b0e631b6e21..e79221fd520 100644
--- a/ydb/core/ymq/actor/events.h
+++ b/ydb/core/ymq/actor/events.h
@@ -764,16 +764,16 @@ struct TSqsEvents {
};
struct TEvInsertQueueCounters : public NActors::TEventLocal<TEvInsertQueueCounters, EvInsertQueueCounters> {
- TEvInsertQueueCounters(const TString& user, const TString& queue, ui64 leaderTabletId)
+ TEvInsertQueueCounters(const TString& user, const TString& queue, ui64 version)
: User(user)
, Queue(queue)
- , LeaderTabletId(leaderTabletId)
+ , Version(version)
{
}
TString User;
TString Queue;
- ui64 LeaderTabletId;
+ ui64 Version;
};
struct TEvUserSettingsChanged : public NActors::TEventLocal<TEvUserSettingsChanged, EvUserSettingsChanged> {
diff --git a/ydb/core/ymq/actor/service.cpp b/ydb/core/ymq/actor/service.cpp
index 7a264a37696..06c5fc049c4 100644
--- a/ydb/core/ymq/actor/service.cpp
+++ b/ydb/core/ymq/actor/service.cpp
@@ -1034,7 +1034,7 @@ std::map<TString, TSqsService::TQueueInfoPtr>::iterator TSqsService::AddQueue(co
folderCntrIter = user->FolderCounters_.insert(std::make_pair(folderId, user->Counters_->CreateFolderCounters(folderId, true))).first;
}
if (!insertCounters) {
- Schedule(timeToInsertCounters - now, new TSqsEvents::TEvInsertQueueCounters(userName, queue, leaderTabletId));
+ Schedule(timeToInsertCounters - now, new TSqsEvents::TEvInsertQueueCounters(userName, queue, version));
}
auto ret = user->Queues_.insert(std::make_pair(queue, TQueueInfoPtr(new TQueueInfo(
@@ -1245,9 +1245,9 @@ void TSqsService::HandleInsertQueueCounters(TSqsEvents::TEvInsertQueueCounters::
return;
}
const auto& queue = queueIt->second;
- if (queue->LeaderTabletId_ != ev->Get()->LeaderTabletId) {
- LOG_SQS_WARN("Don't insert queue [" << ev->Get()->Queue << "] counters: leader tablet is not as expected. Expected: "
- << ev->Get()->LeaderTabletId << ". Real: " << queue->LeaderTabletId_);
+ if (queue->Version_ != ev->Get()->Version) {
+ LOG_SQS_WARN("Don't insert queue [" << ev->Get()->Queue << "] counters: queue version is not as expected. Expected: "
+ << ev->Get()->Version << ". Real: " << queue->Version_);
return;
}