Skip to content

Commit 3f50d43

Browse files
authored
SQS: Fix TimeoutCookie_ leak (stable-24-3) (#11770)
1 parent e1e245b commit 3f50d43

File tree

3 files changed

+11
-9
lines changed

3 files changed

+11
-9
lines changed

ydb/core/ymq/actor/action.h

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,15 @@ class TActionActor
111111
DoBootstrap();
112112
}
113113

114-
void Bootstrap(const NActors::TActorContext&) {
114+
void Bootstrap(const NActors::TActorContext&) {
115115
#define SQS_REQUEST_CASE(action) \
116116
const auto& request = SourceSqsRequest_.Y_CAT(Get, action)(); \
117117
auto response = Response_.Y_CAT(Mutable, action)(); \
118118
FillAuthInformation(request); \
119119
response->SetRequestId(RequestId_);
120-
120+
121121
SQS_SWITCH_REQUEST_CUSTOM(SourceSqsRequest_, ENUMERATE_ALL_ACTIONS, Y_ABORT_UNLESS(false));
122-
#undef SQS_REQUEST_CASE
122+
#undef SQS_REQUEST_CASE
123123

124124
RLOG_SQS_DEBUG("Request started. Actor: " << this->SelfId()); // log new request id
125125
StartTs_ = TActivationContext::Now();
@@ -130,6 +130,7 @@ class TActionActor
130130

131131
// Set timeout
132132
if (cfg.GetRequestTimeoutMs()) {
133+
TimeoutCookie_.Reset(ISchedulerCookie::Make2Way());
133134
this->Schedule(TDuration::MilliSeconds(cfg.GetRequestTimeoutMs()), new TEvWakeup(REQUEST_TIMEOUT_WAKEUP_TAG), TimeoutCookie_.Get());
134135
}
135136

@@ -349,7 +350,7 @@ class TActionActor
349350
RESPONSE_BATCH_CASE(SendMessageBatch)
350351
RESPONSE_CASE(SetQueueAttributes)
351352
RESPONSE_CASE(ListDeadLetterSourceQueues)
352-
RESPONSE_CASE(CountQueues)
353+
RESPONSE_CASE(CountQueues)
353354
case NKikimrClient::TSqsResponse::kDeleteQueueBatch:
354355
case NKikimrClient::TSqsResponse::kGetQueueAttributesBatch:
355356
case NKikimrClient::TSqsResponse::kPurgeQueueBatch:
@@ -362,7 +363,7 @@ class TActionActor
362363
#undef RESPONSE_CASE
363364
}
364365
}
365-
366+
366367
template <class TResponse>
367368
void AuditLogEntry(const TResponse& response, const TString& requestId, const TError* error = nullptr) {
368369
if (!error && response.HasError()) {
@@ -549,7 +550,7 @@ class TActionActor
549550
UserName_ = request.GetAuth().GetUserName();
550551
FolderId_ = request.GetAuth().GetFolderId();
551552
UserSID_ = request.GetAuth().GetUserSID();
552-
553+
553554
if (IsCloud() && !FolderId_) {
554555
auto items = ParseCloudSecurityToken(SecurityToken_);
555556
UserName_ = std::get<0>(items);
@@ -879,7 +880,7 @@ class TActionActor
879880
TIntrusivePtr<TSqsEvents::TQuoterResourcesForActions> QuoterResources_;
880881
bool NeedReportSqsActionInflyCounter = false;
881882
bool NeedReportYmqActionInflyCounter = false;
882-
TSchedulerCookieHolder TimeoutCookie_ = ISchedulerCookie::Make2Way();
883+
TSchedulerCookieHolder TimeoutCookie_;
883884
NKikimrClient::TSqsRequest SourceSqsRequest_;
884885
};
885886

ydb/core/ymq/actor/proxy_actor.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ TString SecurityPrint(const NKikimrClient::TSqsResponse& resp) {
4848
case NKikimrClient::TSqsResponse::kReceiveMessage: {
4949
NKikimrClient::TSqsResponse respCopy = resp;
5050
for (auto& msg : *respCopy.MutableReceiveMessage()->MutableMessages()) {
51-
msg.SetData(TStringBuilder() << "[...user_data_" << msg.GetData().size() << "bytes" << "...]");
51+
msg.SetData(TStringBuilder() << "[...user_data_" << msg.GetData().size() << "bytes" << "...]");
5252
}
5353
return TStringBuilder() << respCopy;
5454
}
@@ -82,6 +82,7 @@ void TProxyActor::Bootstrap() {
8282

8383
const auto& cfg = Cfg();
8484
if (cfg.GetRequestTimeoutMs()) {
85+
TimeoutCookie_.Reset(ISchedulerCookie::Make2Way());
8586
this->Schedule(TDuration::MilliSeconds(cfg.GetRequestTimeoutMs()), new TEvWakeup(), TimeoutCookie_.Get());
8687
}
8788

ydb/core/ymq/actor/proxy_actor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class TProxyActor
6262
THolder<IReplyCallback> Cb_;
6363
bool ErrorResponse_ = false;
6464
TInstant StartTs_;
65-
TSchedulerCookieHolder TimeoutCookie_ = ISchedulerCookie::Make2Way();
65+
TSchedulerCookieHolder TimeoutCookie_;
6666

6767
TIntrusivePtr<TUserCounters> UserCounters_;
6868
TIntrusivePtr<TQueueCounters> QueueCounters_;

0 commit comments

Comments
 (0)