@@ -1564,47 +1564,50 @@ TOperation::TPtr TPipeline::BuildOperation(NEvents::TDataEvents::TEvWrite::TPtr&
15641564{
15651565 const auto & rec = ev->Get ()->Record ;
15661566 TBasicOpInfo info (rec.GetTxId (), EOperationKind::DataTx, EvWrite::Convertor::GetProposeFlags (rec.GetTxMode ()), 0 , receivedAt, tieBreakerIndex);
1567- auto op = MakeIntrusive<TWriteOperation>(info, ev, Self, txc, ctx);
1568- op->OperationSpan = NWilson::TSpan (TWilsonTablet::Tablet, std::move (traceId), " WriteOperation" , NWilson::EFlags::AUTO_END);
1567+ auto writeOp = MakeIntrusive<TWriteOperation>(info, ev, Self, txc, ctx);
1568+ auto writeTx = writeOp->GetWriteTx ();
1569+ Y_ABORT_UNLESS (writeTx);
1570+
1571+ writeOp->OperationSpan = NWilson::TSpan (TWilsonTablet::Tablet, std::move (traceId), " WriteOperation" , NWilson::EFlags::AUTO_END);
15691572
15701573 auto badRequest = [&](const TString& error) {
1571- op ->SetError (NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, error, Self->TabletID ());
1574+ writeOp ->SetError (NKikimrDataEvents::TEvWriteResult::STATUS_BAD_REQUEST, error, Self->TabletID ());
15721575 LOG_ERROR_S (TActivationContext::AsActorContext (), NKikimrServices::TX_DATASHARD, error);
15731576 };
15741577
1575- if (!op-> GetWriteTx () ->Ready ()) {
1576- badRequest (TStringBuilder () << " Shard " << Self->TabletID () << " cannot parse tx " << op ->GetTxId () << " : " << op ->GetWriteTx ()->GetError ());
1577- return op ;
1578+ if (!writeTx ->Ready ()) {
1579+ badRequest (TStringBuilder () << " Shard " << Self->TabletID () << " cannot parse tx " << writeOp ->GetTxId () << " : " << writeOp ->GetWriteTx ()->GetError ());
1580+ return writeOp ;
15781581 }
15791582
1580- op ->ExtractKeys ();
1583+ writeOp ->ExtractKeys ();
15811584
15821585 switch (rec.txmode ()) {
15831586 case NKikimrDataEvents::TEvWrite::MODE_PREPARE:
15841587 break ;
15851588 case NKikimrDataEvents::TEvWrite::MODE_VOLATILE_PREPARE:
1586- op ->SetVolatilePrepareFlag ();
1589+ writeOp ->SetVolatilePrepareFlag ();
15871590 break ;
15881591 case NKikimrDataEvents::TEvWrite::MODE_IMMEDIATE:
1589- op ->SetImmediateFlag ();
1592+ writeOp ->SetImmediateFlag ();
15901593 break ;
15911594 default :
15921595 badRequest (TStringBuilder () << " Unknown txmode: " << rec.txmode ());
1593- return op ;
1596+ return writeOp ;
15941597 }
15951598
15961599 // Make config checks for immediate op.
1597- if (op ->IsImmediate ()) {
1600+ if (writeOp ->IsImmediate ()) {
15981601 if (Config.NoImmediate () || (Config.ForceOnlineRW ())) {
1599- LOG_INFO_S (TActivationContext::AsActorContext (), NKikimrServices::TX_DATASHARD, " Shard " << Self->TabletID () << " force immediate op " << op ->GetTxId () << " to online according to config" );
1600- op ->SetForceOnlineFlag ();
1602+ LOG_INFO_S (TActivationContext::AsActorContext (), NKikimrServices::TX_DATASHARD, " Shard " << Self->TabletID () << " force immediate writeOp " << writeOp ->GetTxId () << " to online according to config" );
1603+ writeOp ->SetForceOnlineFlag ();
16011604 } else {
16021605 if (Config.DirtyImmediate ())
1603- op ->SetForceDirtyFlag ();
1606+ writeOp ->SetForceDirtyFlag ();
16041607 }
16051608 }
16061609
1607- return op ;
1610+ return writeOp ;
16081611}
16091612
16101613void TPipeline::BuildDataTx (TActiveTransaction *tx, TTransactionContext &txc, const TActorContext &ctx)
0 commit comments