@@ -687,7 +687,12 @@ void TNodeBroker::SubscribeForConfigUpdates(const TActorContext &ctx)
687687
688688void TNodeBroker::SendToSubscriber (const TSubscriberInfo &subscriber, IEventBase* event, const TActorContext &ctx) const
689689{
690- THolder<IEventHandle> ev = MakeHolder<IEventHandle>(subscriber.Id , ctx.SelfID , event);
690+ SendToSubscriber (subscriber, event, 0 , ctx);
691+ }
692+
693+ void TNodeBroker::SendToSubscriber (const TSubscriberInfo &subscriber, IEventBase* event, ui64 cookie, const TActorContext &ctx) const
694+ {
695+ THolder<IEventHandle> ev = MakeHolder<IEventHandle>(subscriber.Id , ctx.SelfID , event, 0 , cookie);
691696 if (subscriber.PipeServerInfo ->IcSession ) {
692697 ev->Rewrite (TEvInterconnect::EvForward, subscriber.PipeServerInfo ->IcSession );
693698 }
@@ -708,10 +713,6 @@ void TNodeBroker::SendUpdateNodes(const TActorContext &ctx)
708713
709714void TNodeBroker::SendUpdateNodes (const TSubscriberInfo &subscriber, ui64 version, const TActorContext &ctx)
710715{
711- if (version >= Committed.Epoch .Version ) {
712- return ;
713- }
714-
715716 NKikimrNodeBroker::TUpdateNodes record;
716717 record.SetSeqNo (subscriber.SeqNo );
717718 Committed.Epoch .Serialize (*record.MutableEpoch ());
@@ -743,15 +744,15 @@ TNodeBroker::TSubscriberInfo& TNodeBroker::AddSubscriber(TActorId subscriberId,
743744
744745 auto & pipeServer = PipeServers.at (pipeServerId);
745746 auto res = Subscribers.emplace (subscriberId, TSubscriberInfo (subscriberId, seqNo, &pipeServer));
746- Y_VERIFY_DEBUG_S (res.second , " Subscription already exists for " << subscriberId);
747+ Y_ENSURE (res.second , " Subscription already exists for " << subscriberId);
747748 pipeServer.Subscribers .insert (subscriberId);
748749 return res.first ->second ;
749750}
750751
751752void TNodeBroker::RemoveSubscriber (TActorId subscriber, const TActorContext &ctx)
752753{
753754 auto it = Subscribers.find (subscriber);
754- Y_VERIFY_DEBUG_S (it != Subscribers.end (), " No subscription for " << subscriber);
755+ Y_ENSURE (it != Subscribers.end (), " No subscription for " << subscriber);
755756
756757 LOG_DEBUG_S (ctx, NKikimrServices::NODE_BROKER,
757758 " Unsubscribed " << subscriber
@@ -1622,26 +1623,25 @@ void TNodeBroker::Handle(TEvNodeBroker::TEvSyncNodesRequest::TPtr &ev,
16221623 TabletCounters->Cumulative ()[COUNTER_SYNC_NODES_REQUESTS].Increment (1 );
16231624
16241625 if (auto it = Subscribers.find (ev->Sender ); it != Subscribers.end ()) {
1625- auto response = MakeHolder<TEvNodeBroker::TEvSyncNodesResponse>();
1626- response->Record .SetSeqNo (it->second .SeqNo );
1627- SendToSubscriber (it->second , response.Release (), ctx);
1628- } else {
1629- LOG_ERROR_S (ctx, NKikimrServices::NODE_BROKER,
1630- " Unexpected TEvSyncNodesRequest without subscription from " << ev->Sender );
1626+ if (it->second .SeqNo == ev->Get ()->Record .GetSeqNo ()) {
1627+ auto response = MakeHolder<TEvNodeBroker::TEvSyncNodesResponse>();
1628+ response->Record .SetSeqNo (it->second .SeqNo );
1629+ SendToSubscriber (it->second , response.Release (), ev->Cookie , ctx);
1630+ }
16311631 }
16321632}
16331633
16341634void TNodeBroker::Handle (TEvTabletPipe::TEvServerConnected::TPtr &ev)
16351635{
16361636 auto res = PipeServers.emplace (ev->Get ()->ServerId , TPipeServerInfo (ev->Get ()->ServerId , ev->Get ()->InterconnectSession ));
1637- Y_VERIFY_DEBUG_S (res.second , " Unexpected TEvServerConnected for " << ev->Get ()->ServerId );
1637+ Y_ENSURE (res.second , " Unexpected TEvServerConnected for " << ev->Get ()->ServerId );
16381638}
16391639
16401640void TNodeBroker::Handle (TEvTabletPipe::TEvServerDisconnected::TPtr &ev,
16411641 const TActorContext &ctx)
16421642{
16431643 auto it = PipeServers.find (ev->Get ()->ServerId );
1644- Y_VERIFY_DEBUG_S (it != PipeServers.end (), " Unexpected TEvServerDisconnected for " << ev->Get ()->ServerId );
1644+ Y_ENSURE (it != PipeServers.end (), " Unexpected TEvServerDisconnected for " << ev->Get ()->ServerId );
16451645 while (!it->second .Subscribers .empty ()) {
16461646 RemoveSubscriber (*it->second .Subscribers .begin (), ctx);
16471647 }
0 commit comments