aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsnaury <snaury@ydb.tech>2023-03-03 18:30:48 +0300
committersnaury <snaury@ydb.tech>2023-03-03 18:30:48 +0300
commitda07ebf5f023569919a1f78c997ac1e976feaf80 (patch)
tree68999e809d16fec062b686c43492c72a372e8039
parenta61300f2c663f1ade2a187a1bf5f696ce65b74da (diff)
downloadydb-da07ebf5f023569919a1f78c997ac1e976feaf80.tar.gz
Handle release/restore for volatile transactions
-rw-r--r--ydb/core/tx/datashard/datashard_active_transaction.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/ydb/core/tx/datashard/datashard_active_transaction.cpp b/ydb/core/tx/datashard/datashard_active_transaction.cpp
index 4ac1ac3082f..33d8c6f3086 100644
--- a/ydb/core/tx/datashard/datashard_active_transaction.cpp
+++ b/ydb/core/tx/datashard/datashard_active_transaction.cpp
@@ -560,7 +560,7 @@ void TActiveTransaction::ReleaseTxData(NTabletFlatExecutor::TTxMemoryProviderBas
DataTx->ReleaseTxData();
// Immediate transactions have no body stored.
- if (!IsImmediate()) {
+ if (!IsImmediate() && !HasVolatilePrepareFlag()) {
UntrackMemory();
TxBody.clear();
TrackMemory();
@@ -633,7 +633,7 @@ ERestoreDataStatus TActiveTransaction::RestoreTxData(
// from the TxBody. For planned transaction we should
// restore from local database.
TVector<TSysTables::TLocksTable::TLock> locks;
- if (!IsImmediate()) {
+ if (!IsImmediate() && !HasVolatilePrepareFlag()) {
NIceDb::TNiceDb db(txc.DB);
bool ok = self->TransQueue.LoadTxDetails(db, GetTxId(), Target, TxBody,
locks, ArtifactFlags);