You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2018/10/17 08:48:37 UTC
svn commit: r1844074 - in /tomcat/trunk:
java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java
webapps/docs/changelog.xml
Author: kfujino
Date: Wed Oct 17 08:48:37 2018
New Revision: 1844074
URL: http://svn.apache.org/viewvc?rev=1844074&view=rev
Log:
Even if all members have already disappeared and PING can not be sent, ensure that members will be expired.
Modified:
tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java?rev=1844074&r1=1844073&r2=1844074&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/membership/StaticMembershipProvider.java Wed Oct 17 08:48:37 2018
@@ -279,20 +279,21 @@ public class StaticMembershipProvider ex
protected void ping() throws ChannelException {
// send ping
Member[] members = getAliveMembers(staticMembers.toArray(new Member[0]));
- if (members.length == 0) return;
- try {
- MemberMessage msg = new MemberMessage(membershipId, MemberMessage.MSG_PING, service.getLocalMember(true));
- Response[] resp = rpcChannel.send(members, msg, RpcChannel.ALL_REPLY, sendOptions, rpcTimeout);
- for (int i = 0; i < resp.length; i++) {
- messageReceived(resp[i].getMessage(), resp[i].getSource());
+ if (members.length > 0) {
+ try {
+ MemberMessage msg = new MemberMessage(membershipId, MemberMessage.MSG_PING, service.getLocalMember(true));
+ Response[] resp = rpcChannel.send(members, msg, RpcChannel.ALL_REPLY, sendOptions, rpcTimeout);
+ for (int i = 0; i < resp.length; i++) {
+ messageReceived(resp[i].getMessage(), resp[i].getSource());
+ }
+ } catch (ChannelException ce) {
+ // Handle known failed members
+ FaultyMember[] faultyMembers = ce.getFaultyMembers();
+ for (FaultyMember faultyMember : faultyMembers) {
+ memberDisappeared(faultyMember.getMember());
+ }
+ throw ce;
}
- } catch (ChannelException ce) {
- // Handle known failed members
- FaultyMember[] faultyMembers = ce.getFaultyMembers();
- for (FaultyMember faultyMember : faultyMembers) {
- memberDisappeared(faultyMember.getMember());
- }
- throw ce;
}
// expire
checkExpired();
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1844074&r1=1844073&r2=1844074&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Oct 17 08:48:37 2018
@@ -220,6 +220,10 @@
Move the event notification <code>ThreadPoolExecutor</code> to
<code>MembershipProviderBase</code>. (kfujino)
</fix>
+ <fix>
+ Even if all members have already disappeared and PING can not be sent,
+ ensure that members will be expired. (kfujino)
+ </fix>
</changelog>
</subsection>
<subsection name="Other">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org