Skip to content

Commit 6191791

Browse files
fix memory leak in ymq proxy (#8706)
1 parent 53df48f commit 6191791

File tree

1 file changed

+40
-40
lines changed

1 file changed

+40
-40
lines changed

ydb/services/ymq/ymq_proxy.cpp

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,11 @@ namespace NKikimr::NYmq::V1 {
134134
<< ", UserSid: " << UserSid
135135
<< ", RequestId: " << RequestId;
136136
);
137-
auto requestHolder = MakeHolder<TSqsRequest>();
137+
TSqsRequest sqsRequest;
138138

139-
requestHolder->SetRequestId(RequestId);
139+
sqsRequest.SetRequestId(RequestId);
140140

141-
auto request = GetRequest(requestHolder);
141+
auto request = GetRequest(sqsRequest);
142142

143143
request->MutableAuth()->SetUserName(CloudId);
144144
request->MutableAuth()->SetFolderId(FolderId);
@@ -148,14 +148,14 @@ namespace NKikimr::NYmq::V1 {
148148
request->MutableCredentials()->SetOAuthToken(SecurityToken);
149149
}
150150

151-
auto actor = CreateProxyActionActor(*requestHolder.Release(), CreateReplyCallback(), true);
151+
auto actor = CreateProxyActionActor(sqsRequest, CreateReplyCallback(), true);
152152
ctx.RegisterWithSameMailbox(actor);
153153

154154
TBase::Die(ctx);
155155
}
156156

157157
protected:
158-
virtual TRequest* GetRequest(THolder<TSqsRequest>&) = 0;
158+
virtual TRequest* GetRequest(TSqsRequest&) = 0;
159159
virtual THolder<TReplyCallback> CreateReplyCallback() = 0;
160160
private:
161161
const TString FolderId;
@@ -200,8 +200,8 @@ namespace NKikimr::NYmq::V1 {
200200
using TRpcRequestActor::TRpcRequestActor;
201201

202202
private:
203-
NKikimr::NSQS::TGetQueueUrlRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
204-
auto result = requestHolder->MutableGetQueueUrl();
203+
NKikimr::NSQS::TGetQueueUrlRequest* GetRequest(TSqsRequest& requestHolder) override {
204+
auto result = requestHolder.MutableGetQueueUrl();
205205
result->SetQueueName(GetProtoRequest()->queue_name());
206206
return result;
207207
}
@@ -233,8 +233,8 @@ namespace NKikimr::NYmq::V1 {
233233
using TRpcRequestActor::TRpcRequestActor;
234234

235235
private:
236-
NKikimr::NSQS::TCreateQueueRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
237-
auto result = requestHolder->MutableCreateQueue();
236+
NKikimr::NSQS::TCreateQueueRequest* GetRequest(TSqsRequest& requestHolder) override {
237+
auto result = requestHolder.MutableCreateQueue();
238238
result->SetQueueName(GetProtoRequest()->queue_name());
239239

240240
for (auto &srcAttribute : GetProtoRequest()->attributes()) {
@@ -275,8 +275,8 @@ namespace NKikimr::NYmq::V1 {
275275
using TRpcRequestActor::TRpcRequestActor;
276276

277277
private:
278-
NKikimr::NSQS::TSendMessageRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
279-
auto result = requestHolder->MutableSendMessage();
278+
NKikimr::NSQS::TSendMessageRequest* GetRequest(TSqsRequest& requestHolder) override {
279+
auto result = requestHolder.MutableSendMessage();
280280

281281
for (auto& srcAttribute: GetProtoRequest()->Getmessage_attributes()) {
282282
auto dstAttribute = result->MutableMessageAttributes()->Add();
@@ -376,8 +376,8 @@ namespace NKikimr::NYmq::V1 {
376376
using TBaseRpcRequestActor::TBaseRpcRequestActor;
377377

378378
private:
379-
NKikimr::NSQS::TReceiveMessageRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
380-
auto result = requestHolder->MutableReceiveMessage();
379+
NKikimr::NSQS::TReceiveMessageRequest* GetRequest(TSqsRequest& requestHolder) override {
380+
auto result = requestHolder.MutableReceiveMessage();
381381

382382
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->queue_url())->second);
383383

@@ -531,8 +531,8 @@ namespace NKikimr::NYmq::V1 {
531531
using TBaseRpcRequestActor::TBaseRpcRequestActor;
532532

533533
private:
534-
NKikimr::NSQS::TGetQueueAttributesRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
535-
auto result = requestHolder->MutableGetQueueAttributes();
534+
NKikimr::NSQS::TGetQueueAttributesRequest* GetRequest(TSqsRequest& requestHolder) override {
535+
auto result = requestHolder.MutableGetQueueAttributes();
536536
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->queue_url())->second);
537537
for (const auto& attributeName : GetProtoRequest()->Getattribute_names()) {
538538
result->MutableNames()->Add()->assign(attributeName);
@@ -577,8 +577,8 @@ namespace NKikimr::NYmq::V1 {
577577
using TRpcRequestActor::TRpcRequestActor;
578578

579579
private:
580-
NKikimr::NSQS::TListQueuesRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
581-
auto result = requestHolder->MutableListQueues();
580+
NKikimr::NSQS::TListQueuesRequest* GetRequest(TSqsRequest& requestHolder) override {
581+
auto result = requestHolder.MutableListQueues();
582582
COPY_FIELD_IF_PRESENT(queue_name_prefix, QueueNamePrefix);
583583
return result;
584584
}
@@ -609,8 +609,8 @@ namespace NKikimr::NYmq::V1 {
609609
using TRpcRequestActor::TRpcRequestActor;
610610

611611
private:
612-
NKikimr::NSQS::TDeleteMessageRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
613-
auto result = requestHolder->MutableDeleteMessage();
612+
NKikimr::NSQS::TDeleteMessageRequest* GetRequest(TSqsRequest& requestHolder) override {
613+
auto result = requestHolder.MutableDeleteMessage();
614614
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->queue_url())->second);
615615
result->SetReceiptHandle(GetProtoRequest()->receipt_handle());
616616
return result;
@@ -642,8 +642,8 @@ namespace NKikimr::NYmq::V1 {
642642
using TRpcRequestActor::TRpcRequestActor;
643643

644644
private:
645-
NKikimr::NSQS::TPurgeQueueRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
646-
auto result = requestHolder->MutablePurgeQueue();
645+
NKikimr::NSQS::TPurgeQueueRequest* GetRequest(TSqsRequest& requestHolder) override {
646+
auto result = requestHolder.MutablePurgeQueue();
647647
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->queue_url())->second);
648648
return result;
649649
}
@@ -674,8 +674,8 @@ namespace NKikimr::NYmq::V1 {
674674
using TRpcRequestActor::TRpcRequestActor;
675675

676676
private:
677-
NKikimr::NSQS::TDeleteQueueRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
678-
auto result = requestHolder->MutableDeleteQueue();
677+
NKikimr::NSQS::TDeleteQueueRequest* GetRequest(TSqsRequest& requestHolder) override {
678+
auto result = requestHolder.MutableDeleteQueue();
679679
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->queue_url())->second);
680680
return result;
681681
}
@@ -706,8 +706,8 @@ namespace NKikimr::NYmq::V1 {
706706
using TRpcRequestActor::TRpcRequestActor;
707707

708708
private:
709-
NKikimr::NSQS::TChangeMessageVisibilityRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
710-
auto result = requestHolder->MutableChangeMessageVisibility();
709+
NKikimr::NSQS::TChangeMessageVisibilityRequest* GetRequest(TSqsRequest& requestHolder) override {
710+
auto result = requestHolder.MutableChangeMessageVisibility();
711711
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->queue_url())->second);
712712
result->SetReceiptHandle(GetProtoRequest()->Getreceipt_handle());
713713
result->SetVisibilityTimeout(GetProtoRequest()->Getvisibility_timeout());
@@ -734,8 +734,8 @@ namespace NKikimr::NYmq::V1 {
734734
};
735735

736736

737-
void AddAttribute(THolder<TSqsRequest>& requestHolder, const TString& name, TString value) {
738-
auto attribute = requestHolder->MutableSetQueueAttributes()->MutableAttributes()->Add();
737+
void AddAttribute(TSqsRequest& requestHolder, const TString& name, TString value) {
738+
auto attribute = requestHolder.MutableSetQueueAttributes()->MutableAttributes()->Add();
739739
attribute->SetName(name);
740740
attribute->SetValue(value);
741741
};
@@ -748,8 +748,8 @@ namespace NKikimr::NYmq::V1 {
748748
using TRpcRequestActor::TRpcRequestActor;
749749

750750
private:
751-
NKikimr::NSQS::TSetQueueAttributesRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
752-
auto result = requestHolder->MutableSetQueueAttributes();
751+
NKikimr::NSQS::TSetQueueAttributesRequest* GetRequest(TSqsRequest& requestHolder) override {
752+
auto result = requestHolder.MutableSetQueueAttributes();
753753
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->queue_url())->second);
754754
for (auto& [name, value]: GetProtoRequest()->Getattributes()) {
755755
AddAttribute(requestHolder, name, value);
@@ -786,8 +786,8 @@ namespace NKikimr::NYmq::V1 {
786786
using TRpcRequestActor::TRpcRequestActor;
787787

788788
private:
789-
NKikimr::NSQS::TListDeadLetterSourceQueuesRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
790-
auto result = requestHolder->MutableListDeadLetterSourceQueues();
789+
NKikimr::NSQS::TListDeadLetterSourceQueuesRequest* GetRequest(TSqsRequest& requestHolder) override {
790+
auto result = requestHolder.MutableListDeadLetterSourceQueues();
791791
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->queue_url())->second);
792792
return result;
793793
}
@@ -837,13 +837,13 @@ namespace NKikimr::NYmq::V1 {
837837
using TRpcRequestActor::TRpcRequestActor;
838838

839839
private:
840-
NKikimr::NSQS::TSendMessageBatchRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
841-
auto result = requestHolder->MutableSendMessageBatch();
840+
NKikimr::NSQS::TSendMessageBatchRequest* GetRequest(TSqsRequest& requestHolder) override {
841+
auto result = requestHolder.MutableSendMessageBatch();
842842

843843
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->Getqueue_url())->second);
844844

845845
for (auto& requestEntry : GetProtoRequest()->Getentries()) {
846-
auto entry = requestHolder->MutableSendMessageBatch()->MutableEntries()->Add();
846+
auto entry = requestHolder.MutableSendMessageBatch()->MutableEntries()->Add();
847847

848848
entry->SetId(requestEntry.Getid());
849849
entry->SetMessageBody(requestEntry.Getmessage_body());
@@ -905,11 +905,11 @@ namespace NKikimr::NYmq::V1 {
905905
using TRpcRequestActor::TRpcRequestActor;
906906

907907
private:
908-
NKikimr::NSQS::TDeleteMessageBatchRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
909-
auto result = requestHolder->MutableDeleteMessageBatch();
908+
NKikimr::NSQS::TDeleteMessageBatchRequest* GetRequest(TSqsRequest& requestHolder) override {
909+
auto result = requestHolder.MutableDeleteMessageBatch();
910910
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->Getqueue_url())->second);
911911
for (auto& requestEntry : GetProtoRequest()->Getentries()) {
912-
auto entry = requestHolder->MutableDeleteMessageBatch()->AddEntries();
912+
auto entry = requestHolder.MutableDeleteMessageBatch()->AddEntries();
913913
entry->SetId(requestEntry.Getid());
914914
entry->SetReceiptHandle(requestEntry.Getreceipt_handle());
915915
}
@@ -956,11 +956,11 @@ namespace NKikimr::NYmq::V1 {
956956
using TRpcRequestActor::TRpcRequestActor;
957957

958958
private:
959-
NKikimr::NSQS::TChangeMessageVisibilityBatchRequest* GetRequest(THolder<TSqsRequest>& requestHolder) override {
960-
auto result = requestHolder->MutableChangeMessageVisibilityBatch();
959+
NKikimr::NSQS::TChangeMessageVisibilityBatchRequest* GetRequest(TSqsRequest& requestHolder) override {
960+
auto result = requestHolder.MutableChangeMessageVisibilityBatch();
961961
result->SetQueueName(CloudIdAndResourceIdFromQueueUrl(GetProtoRequest()->Getqueue_url())->second);
962962
for (auto& requestEntry : GetProtoRequest()->Getentries()) {
963-
auto entry = requestHolder->MutableChangeMessageVisibilityBatch()->MutableEntries()->Add();
963+
auto entry = requestHolder.MutableChangeMessageVisibilityBatch()->MutableEntries()->Add();
964964
entry->SetId(requestEntry.Getid());
965965
entry->SetReceiptHandle(requestEntry.Getreceipt_handle());
966966
COPY_FIELD_IF_PRESENT_IN_ENTRY(visibility_timeout, VisibilityTimeout)

0 commit comments

Comments
 (0)