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 2015/11/25 06:39:26 UTC
svn commit: r1716305 - in /tomcat/trunk:
java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
webapps/docs/changelog.xml
Author: kfujino
Date: Wed Nov 25 05:39:26 2015
New Revision: 1716305
URL: http://svn.apache.org/viewvc?rev=1716305&view=rev
Log:
When using a static cluster, add the members that have been cached in the membership service to the map members list in order to ensure that the map member is a static member.
Modified:
tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1716305&r1=1716304&r2=1716305&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java (original)
+++ tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Wed Nov 25 05:39:26 2015
@@ -733,9 +733,10 @@ public abstract class AbstractReplicated
if ( member.equals(getChannel().getLocalMember(false)) ) return;
boolean memberAdded = false;
//select a backup node if we don't have one
+ Member mapMember = getChannel().getMember(member);
synchronized (mapMembers) {
- if (!mapMembers.containsKey(member) ) {
- mapMembers.put(member, Long.valueOf(System.currentTimeMillis()));
+ if (!mapMembers.containsKey(mapMember) ) {
+ mapMembers.put(mapMember, Long.valueOf(System.currentTimeMillis()));
memberAdded = true;
}
}
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1716305&r1=1716304&r2=1716305&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Nov 25 05:39:26 2015
@@ -145,6 +145,11 @@
if the static member that is registered to the remove suspect list has
disappeared. (kfujino)
</fix>
+ <fix>
+ When using a static cluster, add the members that have been cached in
+ the membership service to the map members list in order to ensure that
+ the map member is a static member. (kfujino)
+ </fix>
</changelog>
</subsection>
<subsection name="jdbc-pool">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1716305 - in /tomcat/trunk: java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
webapps/docs/changelog.xml
Posted by Keiichi Fujino <kf...@apache.org>.
2015-11-25 15:39 GMT+09:00 Konstantin Kolinko <kn...@gmail.com>:
> 2015-11-25 8:39 GMT+03:00 <kf...@apache.org>:
> > Author: kfujino
> > Date: Wed Nov 25 05:39:26 2015
> > New Revision: 1716305
> >
> > URL: http://svn.apache.org/viewvc?rev=1716305&view=rev
> > Log:
> > When using a static cluster, add the members that have been cached in
> the membership service to the map members list in order to ensure that the
> map member is a static member.
> >
> > Modified:
> >
> tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
> > tomcat/trunk/webapps/docs/changelog.xml
> >
> > Modified:
> tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
> > URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1716305&r1=1716304&r2=1716305&view=diff
> >
> ==============================================================================
> > ---
> tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
> (original)
> > +++
> tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
> Wed Nov 25 05:39:26 2015
> > @@ -733,9 +733,10 @@ public abstract class AbstractReplicated
> > if ( member.equals(getChannel().getLocalMember(false)) ) return;
> > boolean memberAdded = false;
> > //select a backup node if we don't have one
> > + Member mapMember = getChannel().getMember(member);
>
> Can "getChannel().getMember(member)" call return null? Using null
> value as a key for mapMembers looks wrong.
>
> E.g. I see that
> org.apache.catalina.tribes.membership.Membership.getMember(Member) may
> return null.
>
> The Membership.getMember(Member) method is not a Channel method, but
> it is used to implement
> DomainFilterInterceptor.getMember(Member mbr)
> NonBlockingCoordinator.getMember(Member mbr)
> TcpFailureDetector.getMember(Member mbr)
> MCastService.getMember(Member)
>
>
Thanks for the comments.
The "getChannel().getMember(member)" never return a null in most cases.
However, if static member has not been detected yet, the
"getChannel().getMember(member)" can return null.
So, I'll add null check.
if (mapMember == null) {
// todo warn log
return;
}
If null is returned, just return.
And then, the AbstractReplicatedMap.ping method will try to add map members
again.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
> --
> Keiichi.Fujino
> <de...@tomcat.apache.org>
> <de...@tomcat.apache.org>
>
Re: svn commit: r1716305 - in /tomcat/trunk: java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
webapps/docs/changelog.xml
Posted by Konstantin Kolinko <kn...@gmail.com>.
2015-11-25 8:39 GMT+03:00 <kf...@apache.org>:
> Author: kfujino
> Date: Wed Nov 25 05:39:26 2015
> New Revision: 1716305
>
> URL: http://svn.apache.org/viewvc?rev=1716305&view=rev
> Log:
> When using a static cluster, add the members that have been cached in the membership service to the map members list in order to ensure that the map member is a static member.
>
> Modified:
> tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
> tomcat/trunk/webapps/docs/changelog.xml
>
> Modified: tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1716305&r1=1716304&r2=1716305&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Wed Nov 25 05:39:26 2015
> @@ -733,9 +733,10 @@ public abstract class AbstractReplicated
> if ( member.equals(getChannel().getLocalMember(false)) ) return;
> boolean memberAdded = false;
> //select a backup node if we don't have one
> + Member mapMember = getChannel().getMember(member);
Can "getChannel().getMember(member)" call return null? Using null
value as a key for mapMembers looks wrong.
E.g. I see that
org.apache.catalina.tribes.membership.Membership.getMember(Member) may
return null.
The Membership.getMember(Member) method is not a Channel method, but
it is used to implement
DomainFilterInterceptor.getMember(Member mbr)
NonBlockingCoordinator.getMember(Member mbr)
TcpFailureDetector.getMember(Member mbr)
MCastService.getMember(Member)
> synchronized (mapMembers) {
> - if (!mapMembers.containsKey(member) ) {
> - mapMembers.put(member, Long.valueOf(System.currentTimeMillis()));
> + if (!mapMembers.containsKey(mapMember) ) {
> + mapMembers.put(mapMember, Long.valueOf(System.currentTimeMillis()));
> memberAdded = true;
> }
> }
>
> Modified: tomcat/trunk/webapps/docs/changelog.xml
> URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1716305&r1=1716304&r2=1716305&view=diff
> ==============================================================================
> --- tomcat/trunk/webapps/docs/changelog.xml (original)
> +++ tomcat/trunk/webapps/docs/changelog.xml Wed Nov 25 05:39:26 2015
> @@ -145,6 +145,11 @@
> if the static member that is registered to the remove suspect list has
> disappeared. (kfujino)
> </fix>
> + <fix>
> + When using a static cluster, add the members that have been cached in
> + the membership service to the map members list in order to ensure that
> + the map member is a static member. (kfujino)
> + </fix>
> </changelog>
> </subsection>
> <subsection name="jdbc-pool">
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org