@@ -891,31 +891,34 @@ namespace NActors {
891891 ParsePeerScopeId (success.GetServerScopeId ());
892892 }
893893
894- if (Rdma && success.HasQpPrepared ()) {
895- const auto & remoteQpPrepared = success.GetQpPrepared ();
896- LOG_LOG_IC_X (NActorsServices::INTERCONNECT, " ICRDMA" , NLog::PRI_TRACE,
897- " peer has prepared qp: %d" , remoteQpPrepared.GetQpNum ());
898- NInterconnect::NRdma::THandshakeData hd {
899- .QpNum = remoteQpPrepared.GetQpNum (),
900- .SubnetPrefix = remoteQpPrepared.GetSubnetPrefix (),
901- .InterfaceId = remoteQpPrepared.GetInterfaceId (),
902- .MtuIndex = remoteQpPrepared.GetMtuIndex (),
903- };
904- int err = Rdma.Qp ->ToRtsState (hd);
905- if (err) {
906- TStringBuilder sb;
907- sb << hd;
894+ if (Rdma) {
895+ if (success.HasQpPrepared ()) {
896+ const auto & remoteQpPrepared = success.GetQpPrepared ();
897+ LOG_LOG_IC_X (NActorsServices::INTERCONNECT, " ICRDMA" , NLog::PRI_TRACE,
898+ " peer has prepared qp: %d" , remoteQpPrepared.GetQpNum ());
899+ NInterconnect::NRdma::THandshakeData hd {
900+ .QpNum = remoteQpPrepared.GetQpNum (),
901+ .SubnetPrefix = remoteQpPrepared.GetSubnetPrefix (),
902+ .InterfaceId = remoteQpPrepared.GetInterfaceId (),
903+ .MtuIndex = remoteQpPrepared.GetMtuIndex (),
904+ };
905+ int err = Rdma.Qp ->ToRtsState (hd);
906+ if (err) {
907+ TStringBuilder sb;
908+ sb << hd;
909+ LOG_LOG_IC_X (NActorsServices::INTERCONNECT, " ICRDMA" , NLog::PRI_ERROR,
910+ " Unable to promote QP to RTS, err: %d (%s), handshake data: %s" , err, strerror (err), sb.data ());
911+ Rdma.HandShakeMemRegion .Reset ();
912+ Rdma.Clear ();
913+ } else {
914+ Params.ChecksumRdmaEvent = remoteQpPrepared.GetRdmaChecksum ();
915+ }
916+ } else {
908917 LOG_LOG_IC_X (NActorsServices::INTERCONNECT, " ICRDMA" , NLog::PRI_ERROR,
909- " Unable to promote QP to RTS, err: %d (%s), handshake data: %s " , err, strerror (err), sb. data () );
918+ " Non success qp response from remote side " );
910919 Rdma.HandShakeMemRegion .Reset ();
911920 Rdma.Clear ();
912921 }
913- Params.ChecksumRdmaEvent = remoteQpPrepared.GetRdmaChecksum ();
914- } else {
915- LOG_LOG_IC_X (NActorsServices::INTERCONNECT, " ICRDMA" , NLog::PRI_ERROR,
916- " Non success qp response from remote side" );
917- Rdma.HandShakeMemRegion .Reset ();
918- Rdma.Clear ();
919922 }
920923
921924 // recover peer process info from peer's reply
0 commit comments