diff options
author | Igor Makunin <igor.makunin@gmail.com> | 2022-02-11 16:13:07 +0300 |
---|---|---|
committer | Igor Makunin <igor.makunin@gmail.com> | 2022-02-11 16:13:07 +0300 |
commit | d275764f20f89058c60a16121079dce2a5466d23 (patch) | |
tree | 098cab7e3d7cd513f89ff80c503536fd77425804 | |
parent | 58865f92201c1f91524c35ffdeb9689e363a10b0 (diff) | |
download | ydb-d275764f20f89058c60a16121079dce2a5466d23.tar.gz |
KIKIMR-14306: fix use-after-free
ref:14f2a3f97379f396a19c1e7a475e480aedfefab4
-rw-r--r-- | ydb/core/tx/datashard/build_kqp_data_tx_out_rs_unit.cpp | 1 | ||||
-rw-r--r-- | ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/ydb/core/tx/datashard/build_kqp_data_tx_out_rs_unit.cpp b/ydb/core/tx/datashard/build_kqp_data_tx_out_rs_unit.cpp index 50a3c1f401..60311f907e 100644 --- a/ydb/core/tx/datashard/build_kqp_data_tx_out_rs_unit.cpp +++ b/ydb/core/tx/datashard/build_kqp_data_tx_out_rs_unit.cpp @@ -98,6 +98,7 @@ EExecutionStatus TBuildKqpDataTxOutRSUnit::Execute(TOperation::TPtr op, TTransac auto result = KqpRunTransaction(ctx, op->GetTxId(), dataTx->GetKqpTasks(), tasksRunner); if (result == NYql::NDq::ERunStatus::PendingInput && dataTx->GetKqpComputeCtx().IsTabletNotReady()) { + allocGuard.Release(); return OnTabletNotReady(*tx, *dataTx, txc, ctx); } } diff --git a/ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp b/ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp index 70e7be3662..946e035f82 100644 --- a/ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp +++ b/ydb/core/tx/datashard/execute_kqp_data_tx_unit.cpp @@ -136,6 +136,7 @@ EExecutionStatus TExecuteKqpDataTxUnit::Execute(TOperation::TPtr op, TTransactio op->HasKqpAttachedRSFlag() ? nullptr : &op->InReadSets(), dataTx->GetKqpTasks(), tasksRunner, computeCtx); if (!result && computeCtx.IsTabletNotReady()) { + allocGuard.Release(); return OnTabletNotReady(*tx, *dataTx, txc, ctx); } |