Flow control should send new credits only *after* processing a message
----------------------------------------------------------------------
Key: JGRP-374
URL:
http://jira.jboss.com/jira/browse/JGRP-374
Project: JGroups
Issue Type: Feature Request
Affects Versions: 2.4
Reporter: Bela Ban
Assigned To: Bela Ban
Fix For: 2.5
Currently, FC sends new credits (when the sender's credits drop below a threshold)
*before* passing the message up. However, if the receiver takes a long time to process the
message, we might queue up messages, possibly leading to OOMs.
SOLUTION: in FC.up(), decrement the sender's credits by number of bytes received, but
only send replenishment (if needed) *after* the message was passed up. This requires that
passUp() includes delivery of the message to the receiver and we can be sure that, once
passUp() returns, the message has been delivered. If we use a queue in Channel (e.g. using
the pull model, Channel.receive()), this won't work.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira