Author: rjung
Date: Thu Apr 15 19:00:23 2010
New Revision: 934546

URL: http://svn.apache.org/viewvc?rev=934546&view=rev
Log:
Spurious startup errors in the cluster
Although the secondary node is able to retrieve all sessions, the main thread 
doesn't
see the changed stateTransfered flag, and thus waits until the transfer timeout 
occurs.

Observed on Solaris. Switching to volatile fixes it.

Port of r814024 from trunk and r884949 from TC 5.5.x.

Modified:
    
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java
    
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/SimpleTcpReplicationManager.java

Modified: 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java?rev=934546&r1=934545&r2=934546&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java
 (original)
+++ 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/DeltaManager.java
 Thu Apr 15 19:00:23 2010
@@ -115,7 +115,7 @@ public class DeltaManager extends Cluste
     private boolean expireSessionsOnShutdown = false;
     private boolean notifyListenersOnReplication = true;
     private boolean notifySessionListenersOnReplication = true;
-    private boolean stateTransfered = false ;
+    private volatile boolean stateTransfered = false ;
     private int stateTransferTimeout = 60;
     private boolean sendAllSessions = true;
     private boolean sendClusterDomainOnly = true ;

Modified: 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/SimpleTcpReplicationManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/SimpleTcpReplicationManager.java?rev=934546&r1=934545&r2=934546&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/SimpleTcpReplicationManager.java
 (original)
+++ 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/session/SimpleTcpReplicationManager.java
 Thu Apr 15 19:00:23 2010
@@ -101,7 +101,7 @@ implements ClusterManager
      * Flag to keep track if the state has been transferred or not
      * Assumes false.
      */
-    protected boolean stateTransferred = false;
+    protected volatile boolean stateTransferred = false;
     private boolean notifyListenersOnReplication;
     private boolean sendClusterDomainOnly = true ;
 



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

Reply via email to