Author: kfujino
Date: Wed Aug 23 06:24:21 2017
New Revision: 1805856
URL: http://svn.apache.org/viewvc?rev=1805856&view=rev
Log:
Avoid Ping timeout until the added map member by receiving MSG_START message is
completely started.
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1805856&r1=1805855&r2=1805856&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
(original)
+++
tomcat/tc7.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
Wed Aug 23 06:24:21 2017
@@ -281,12 +281,21 @@ public abstract class AbstractReplicated
MapMessage mapMsg = (MapMessage)resp[i].getMessage();
try {
mapMsg.deserialize(getExternalLoaders());
+ Member member = resp[i].getSource();
State state = (State) mapMsg.getValue();
if (state.isAvailable()) {
- memberAlive(resp[i].getSource());
+ memberAlive(member);
+ } else if (state == State.STATETRANSFERRED) {
+ synchronized (mapMembers) {
+ if (log.isInfoEnabled())
+ log.info("Member[" + member + "] is state
transferred but not available yet.");
+ if (mapMembers.containsKey(member) ) {
+ mapMembers.put(member,
Long.valueOf(System.currentTimeMillis()));
+ }
+ }
} else {
if (log.isInfoEnabled())
- log.info("Member[" + resp[i].getSource() + "]
is not available yet.");
+ log.info("Member[" + member + "] is not
available yet.");
}
} catch (IOException x) {
log.error("Unable to deserialize MapMessage.", x);
@@ -543,6 +552,7 @@ public abstract class AbstractReplicated
} catch (ClassNotFoundException x) {
log.error("Unable to transfer AbstractReplicatedMap state.", x);
}
+ this.state = State.STATETRANSFERRED;
}
/**
@@ -1669,6 +1679,7 @@ public abstract class AbstractReplicated
private static enum State {
NEW(false),
+ STATETRANSFERRED(false),
INITIALIZED(true),
DESTROYED(false);
Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1805856&r1=1805855&r2=1805856&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Aug 23 06:24:21 2017
@@ -84,6 +84,10 @@
Add member info to the log message when the failure detection check
fails in <code>TcpFailureDetector</code>. (kfujino)
</fix>
+ <fix>
+ Avoid Ping timeout until the added map member by receiving
+ <code>MSG_START</code> message is completely started. (kfujino)
+ </fix>
</changelog>
</subsection>
</section>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]