Skip to content

Commit 58dba71

Browse files
authored
Reset current_memory_tracker when WNEstablishDisaggTaskHandler finished. (#8174) (#8175)
close #8173
1 parent 58f980b commit 58dba71

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

dbms/src/Flash/FlashService.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -889,9 +889,6 @@ grpc::Status FlashService::EstablishDisaggTask(
889889
DM::DisaggTaskId task_id(meta);
890890
auto logger = Logger::get(task_id);
891891

892-
auto handler = std::make_shared<WNEstablishDisaggTaskHandler>(db_context, task_id);
893-
SCOPE_EXIT({ current_memory_tracker = nullptr; });
894-
895892
auto record_other_error = [&](int flash_err_code, const String & err_msg) {
896893
// Note: We intentinally do not remove the snapshot from the SnapshotManager
897894
// when this request is failed. Consider this case:
@@ -905,9 +902,11 @@ grpc::Status FlashService::EstablishDisaggTask(
905902
try
906903
{
907904
auto task = std::make_shared<std::packaged_task<void()>>(
908-
[&handler, &request, &response, deadline = grpc_context->deadline()]() {
905+
[db_context = db_context, &task_id, &request, &response, deadline = grpc_context->deadline()]() {
909906
auto current = std::chrono::system_clock::now();
910907
RUNTIME_CHECK(current < deadline, current, deadline);
908+
auto handler = std::make_unique<WNEstablishDisaggTaskHandler>(db_context, task_id);
909+
SCOPE_EXIT({ current_memory_tracker = nullptr; });
911910
handler->prepare(request);
912911
handler->execute(response);
913912
});

0 commit comments

Comments
 (0)