>If you block the caller in mds_mdtm_queue_add_unsent_msg() you have basically
>implemented a blocking send which is pointless.
No, after non-blocking send() fail , the message is added in unsent queue
. Before sending a new message, the unsent queue is checked and if present, the
new message will be added to the queue. When the pollout comes on the fd(write
fd), the messages in the queue are processed and sent.
so we are postponing the send().
---
** [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