Author: markt
Date: Fri Nov 27 19:09:42 2009
New Revision: 884960

URL: http://svn.apache.org/viewvc?rev=884960&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=46384
Correct synchronisation problem that leads to cluster members permanently 
disappearing

Modified:
    tomcat/tc5.5.x/trunk/STATUS.txt
    
tomcat/tc5.5.x/trunk/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
    tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml

Modified: tomcat/tc5.5.x/trunk/STATUS.txt
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=884960&r1=884959&r2=884960&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/STATUS.txt (original)
+++ tomcat/tc5.5.x/trunk/STATUS.txt Fri Nov 27 19:09:42 2009
@@ -84,13 +84,6 @@
   +1: markt
   -1:
 
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=46384
-  Correct synchronisation problem that leads to cluster members permanently
-  disappearing
-  https://issues.apache.org/bugzilla/attachment.cgi?id=24253
-  +1: markt, rjung, kkolinko
-  -1:
-
 * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=46950
   Adds support for SSL renegotiation when CLIENT-CERT auth is required due to a
   security constraint

Modified: 
tomcat/tc5.5.x/trunk/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java?rev=884960&r1=884959&r2=884960&view=diff
==============================================================================
--- 
tomcat/tc5.5.x/trunk/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
 (original)
+++ 
tomcat/tc5.5.x/trunk/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
 Fri Nov 27 19:09:42 2009
@@ -265,23 +265,25 @@
             McastMember m = McastMember.getMember(data);
             if(log.isDebugEnabled())
                 log.debug("Mcast receive ping from member " + m);
-            if ( membership.memberAlive(m) ) {
-                if(log.isDebugEnabled())
-                    log.debug("Mcast add member " + m);
-                service.memberAdded(m);
+            synchronized (membershipMutex) {
+                if ( membership.memberAlive(m) ) {
+                    if(log.isDebugEnabled())
+                        log.debug("Mcast add member " + m);
+                    service.memberAdded(m);
+                }
             }
         } finally {
             checkExpire();
         }
     }
 
-    protected Object expiredMutex = new Object();
+    protected final Object membershipMutex = new Object();
 
     /**
      * check member expire or alive
      */
     protected void checkExpire() {
-        synchronized (expiredMutex) {
+        synchronized (membershipMutex) {
             McastMember[] expired = membership.expire(timeToExpiration);
             for ( int i=0; i<expired.length; i++) {
                 if(log.isDebugEnabled())

Modified: tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml?rev=884960&r1=884959&r2=884960&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml (original)
+++ tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml Fri Nov 27 
19:09:42 2009
@@ -123,6 +123,10 @@
       <fix>
         Remove unnecessary Java5 dependencies. (markt)
       </fix>
+      <fix>
+        <bug>46384</bug>: Correct synchronisation issue that could lead to a
+        cluster member disappering permanently. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Webapps">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to