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