If you block the caller in mds_mdtm_queue_add_unsent_msg() you have basically 
implemented a blocking send which is pointless. Just don't set the socket 
non-blocking will have the same effect.

MDS send can fail, it is OK to return FAILURE but it is also OK to block in the 
send call. We do it in the TIPC case. In my opinion the send queue should be 
removed. No configurability is needed.


---

** [tickets:#607] Mds : tcp assert in MDS on cumulated unsent messages**

**Status:** assigned
**Milestone:** future
**Created:** Wed Oct 30, 2013 08:03 AM UTC by A V Mahesh (AVM)
**Last Updated:** Tue Oct 07, 2014 07:47 PM UTC
**Owner:** A V Mahesh (AVM)

Using the OpenSAF test program "logtest" and the latest opensaf configured with 
MDS/TCP crashes the log server in the assert in mds_mdtm_queue_add_unsent_msg():

======================================================================================
 ++tcp_cb->mdtm_tcp_unsent_counter; /* Increment the counter to keep a tab on 
number of messages */
     if (tcp_cb->mdtm_tcp_unsent_counter <= DTM_INTRANODE_UNSENT_MSG) {
         if (NULL == hdr && NULL == tail) {
             tcp_cb->mds_mdtm_msg_unsent_hdr = tmp;
            tcp_cb->mds_mdtm_msg_unsent_tail = tmp;
         } else {
             tail->next = tmp;
             tcp_cb->mds_mdtm_msg_unsent_tail = tmp;

             /* Change the poll from POLLIN to POLLOUT */
             pfd[0].events = pfd[0].events | POLLOUT;
         }
     } else {
         syslog(LOG_ERR, " MDTM unsent message is more!=%d", 
DTM_INTRANODE_UNSENT_MSG);
         assert(0);
         return NCSCC_RC_FAILURE;
     }
======================================================================================

$ grep DTM_INTRANODE_UNSENT_MSG include/*
include/mds_dt_tcp_disc.h:#define DTM_INTRANODE_UNSENT_MSG 200

mds_mdtm_unsent_queue_add_send() is the only place 
mds_mdtm_queue_add_unsent_msg() is called.

mds_mdtm_unsent_queue_add_send() can return an error code, none of its callers 
check the return code! I guess it should return void then and abort internally.



---

Sent from sourceforge.net because [email protected] is 
subscribed to https://sourceforge.net/p/opensaf/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/opensaf/admin/tickets/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.
------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets

Reply via email to