This commit as part of #3095 updates the error string with pattern "FCTRL:*Error[*]", in order to help grep-ing the error in mds debug log. --- src/mds/mds_tipc_fctrl_intf.cc | 59 +++++++++++++++++++++++++--------------- src/mds/mds_tipc_fctrl_portid.cc | 10 ++++--- 2 files changed, 43 insertions(+), 26 deletions(-)
diff --git a/src/mds/mds_tipc_fctrl_intf.cc b/src/mds/mds_tipc_fctrl_intf.cc index 8018064..e7f53ed 100644 --- a/src/mds/mds_tipc_fctrl_intf.cc +++ b/src/mds/mds_tipc_fctrl_intf.cc @@ -93,7 +93,7 @@ void tmr_exp_cbk(void* uarg) { // send to fctrl thread if (m_NCS_IPC_SEND(&mbx_events, new Event(timer->type_), NCS_IPC_PRIORITY_HIGH) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("FCTRL: Failed to send msg to mbx_events\n"); + m_MDS_LOG_ERR("FCTRL: Error[Failed to send msg to mbx_events]"); } } } @@ -130,7 +130,9 @@ uint32_t process_flow_event(const Event& evt) { rc = portid->ReceiveData(evt.mseq_, evt.mfrag_, evt.fseq_, evt.svc_id_); } else { - m_MDS_LOG_ERR("PortId not found for evt:%d", (int)evt.type_); + m_MDS_LOG_ERR("FCTRL: [me] <-- [node:%x, ref:%u], " + "RcvEvt[evt:%d], Error[PortId not found]", + evt.id_.node, evt.id_.ref, (int)evt.type_); } } else { if (evt.type_ == Event::Type::kEvtRcvData) { @@ -169,7 +171,7 @@ uint32_t process_all_events(void) { if (pollres == -1) { if (errno == EINTR) continue; - m_MDS_LOG_ERR("FCTRL: poll() failed:%s", strerror(errno)); + m_MDS_LOG_ERR("FCTRL: poll() failed, Error[%s]", strerror(errno)); break; } @@ -212,18 +214,21 @@ uint32_t create_ncs_task(void *task_hdl) { int prio_val = ((max_prio - min_prio) * 0.87); if (m_NCS_IPC_CREATE(&mbx_events) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("m_NCS_IPC_CREATE failed"); + m_MDS_LOG_ERR("FCTRL: m_NCS_IPC_CREATE failed, Error[%s]", + strerror(errno)); return NCSCC_RC_FAILURE; } if (m_NCS_IPC_ATTACH(&mbx_events) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("m_NCS_IPC_ATTACH failed"); + m_MDS_LOG_ERR("FCTRL: m_NCS_IPC_ATTACH failed, Error[%s]", + strerror(errno)); m_NCS_IPC_RELEASE(&mbx_events, nullptr); return NCSCC_RC_FAILURE; } if (ncs_task_create((NCS_OS_CB)process_all_events, 0, "OSAF_MDS", prio_val, policy, NCS_MDTM_STACKSIZE, &task_hdl) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("FCTRL: ncs_task_create() failed\n"); + m_MDS_LOG_ERR("FCTRL: ncs_task_create(), Error[%s]", + strerror(errno)); m_NCS_IPC_RELEASE(&mbx_events, nullptr); return NCSCC_RC_FAILURE; } @@ -247,7 +252,8 @@ uint32_t mds_tipc_fctrl_initialize(int dgramsock, struct tipc_portid id, if (create_ncs_task(&p_task_hdl) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("FCTRL: create_ncs_task() failed\n"); + m_MDS_LOG_ERR("FCTRL: create_ncs_task() failed, Error[%s]", + strerror(errno)); return NCSCC_RC_FAILURE; } is_fctrl_enabled = true; @@ -263,7 +269,8 @@ uint32_t mds_tipc_fctrl_shutdown(void) { portid_map_mutex.lock(); if (ncs_task_release(p_task_hdl) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("FCTRL: Stop of the Created Task-failed:\n"); + m_MDS_LOG_ERR("FCTRL: Stop of the Created Task-failed, Error[%s]", + strerror(errno)); } m_NCS_IPC_DETACH(&mbx_events, nullptr, nullptr); @@ -291,7 +298,8 @@ uint32_t mds_tipc_fctrl_sndqueue_capable(struct tipc_portid id, TipcPortId *portid = portid_lookup(id); if (portid == nullptr) { - m_MDS_LOG_ERR("FCTRL: PortId not found [node:%x, ref:%u] line:%u", + m_MDS_LOG_ERR("FCTRL: [me] --> [node:%x, ref:%u], " + "[line:%u], Error[PortId not found]", id.node, id.ref, __LINE__); rc = NCSCC_RC_FAILURE; } else { @@ -316,7 +324,8 @@ uint32_t mds_tipc_fctrl_trysend(const uint8_t *buffer, uint16_t len, TipcPortId *portid = portid_lookup(id); if (portid == nullptr) { - m_MDS_LOG_ERR("FCTRL: PortId not found [node:%x, ref:%u] line:%u", + m_MDS_LOG_ERR("FCTRL: [me] --> [node:%x, ref:%u], " + "[line:%u], Error[PortId not found]", id.node, id.ref, __LINE__); rc = NCSCC_RC_FAILURE; } else { @@ -420,7 +429,8 @@ uint32_t mds_tipc_fctrl_drop_data(uint8_t *buffer, uint16_t len, new Event(Event::Type::kEvtSendChunkAck, id, ack.svc_id_, header.mseq_, header.mfrag_, ack.acked_fseq_, ack.chunk_size_), NCS_IPC_PRIORITY_HIGH) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("FCTRL: Failed to send msg to mbx_events\n"); + m_MDS_LOG_ERR("FCTRL: Failed to send msg to mbx_events, Error[%s]", + strerror(errno)); return NCSCC_RC_FAILURE; } return NCSCC_RC_SUCCESS; @@ -434,7 +444,8 @@ uint32_t mds_tipc_fctrl_drop_data(uint8_t *buffer, uint16_t len, new Event(Event::Type::kEvtDropData, id, data.svc_id_, header.mseq_, header.mfrag_, header.fseq_), NCS_IPC_PRIORITY_HIGH) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("FCTRL: Failed to send msg to mbx_events\n"); + m_MDS_LOG_ERR("FCTRL: Failed to send msg to mbx_events, Error[%s]", + strerror(errno)); return NCSCC_RC_FAILURE; } return NCSCC_RC_SUCCESS; @@ -462,13 +473,10 @@ uint32_t mds_tipc_fctrl_rcv_data(uint8_t *buffer, uint16_t len, new Event(Event::Type::kEvtRcvChunkAck, id, ack.svc_id_, header.mseq_, header.mfrag_, ack.acked_fseq_, ack.chunk_size_), NCS_IPC_PRIORITY_HIGH) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("FCTRL: Failed to send msg to mbx_events\n"); + m_MDS_LOG_ERR("FCTRL: Failed to send msg to mbx_events, Error[%s]", + strerror(errno)); } - // return NCSCC_RC_FAILURE, so the tipc receiving thread (legacy) will - // skip this data msg - return NCSCC_RC_FAILURE; - } - if (header.msg_type_ == Nack::kNackMsgType) { + } else if (header.msg_type_ == Nack::kNackMsgType) { // receive nack message Nack nack; nack.Decode(buffer); @@ -477,12 +485,17 @@ uint32_t mds_tipc_fctrl_rcv_data(uint8_t *buffer, uint16_t len, new Event(Event::Type::kEvtRcvNack, id, nack.svc_id_, header.mseq_, header.mfrag_, nack.nacked_fseq_), NCS_IPC_PRIORITY_HIGH) != NCSCC_RC_SUCCESS) { - m_MDS_LOG_ERR("FCTRL: Failed to send msg to mbx_events\n"); + m_MDS_LOG_ERR("FCTRL: Failed to send msg to mbx_events, Error[%s]", + strerror(errno)); } - // return NCSCC_RC_FAILURE, so the tipc receiving thread (legacy) will - // skip this data msg - return NCSCC_RC_FAILURE; + } else { + m_MDS_LOG_ERR("FCTRL: [me] <-- [node:%x, ref:%u], " + "[msg_type:%u], Error[not supported message type]", + id.node, id.ref, header.msg_type_); } + // return NCSCC_RC_FAILURE, so the tipc receiving thread (legacy) will + // skip this data msg + return NCSCC_RC_FAILURE; } else { // receive data message DataMessage data; @@ -490,6 +503,8 @@ uint32_t mds_tipc_fctrl_rcv_data(uint8_t *buffer, uint16_t len, // todo: skip mcast/bcast, revisit if ((data.snd_type_ == MDS_SENDTYPE_BCAST || data.snd_type_ == MDS_SENDTYPE_RBCAST) && is_mcast_enabled) { + m_MDS_LOG_NOTIFY("FCTRL: Skip fseq inspection for BCAST/RBCAST message" + "[fseq:%u]", header.fseq_); return NCSCC_RC_SUCCESS; } portid_map_mutex.lock(); diff --git a/src/mds/mds_tipc_fctrl_portid.cc b/src/mds/mds_tipc_fctrl_portid.cc index 8235265..24a7e2a 100644 --- a/src/mds/mds_tipc_fctrl_portid.cc +++ b/src/mds/mds_tipc_fctrl_portid.cc @@ -161,7 +161,7 @@ uint32_t TipcPortId::Send(uint8_t* data, uint16_t length) { if (send_len == length) { rc = NCSCC_RC_SUCCESS; } else { - m_MDS_LOG_ERR("sendto() err :%s", strerror(errno)); + m_MDS_LOG_ERR("FCTRL: sendto() failed, Error[%s]", strerror(errno)); rc = NCSCC_RC_FAILURE; } return rc; @@ -208,8 +208,9 @@ bool TipcPortId::ReceiveCapable(uint16_t sending_len) { // Too many msgs are not acked by receiver while in txprob state // disable flow control state_ = State::kDisabled; - m_MDS_LOG_ERR("FCTRL: [node:%x, ref:%u] --> Disabled, %" PRIu64 - ", %u, %" PRIu64, id_.node, id_.ref, sndwnd_.nacked_space_, + m_MDS_LOG_ERR("FCTRL: me --> [node:%x, ref:%u], [nacked:%" PRIu64 + ", len:%u, rcv_buf_size:%" PRIu64 "], Warning[kTxProb -> kDisabled]", + id_.node, id_.ref, sndwnd_.nacked_space_, sending_len, rcv_buf_size_); return true; } else if (state_ == State::kEnabled) { @@ -442,7 +443,8 @@ void TipcPortId::ReceiveNack(uint32_t mseq, uint16_t mfrag, } if (state_ == State::kRcvBuffOverflow) { m_MDS_LOG_ERR("FCTRL: [me] <-- [node:%x, ref:%u], " - "RcvNack, ignore[fseq:%u, state:%u]", + "RcvNack[fseq:%u, state:%u]" + "Warning[Ignore Nack]", id_.node, id_.ref, fseq, (uint8_t)state_); sndqueue_.MarkUnsentFrom(Seq16(fseq)); -- 2.7.4 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel