DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=42937>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=42937 Summary: The loop of LazyReplicatedMap.publishEntryInfo doesn't end. Product: Tomcat 6 Version: unspecified Platform: All OS/Version: All Status: NEW Severity: major Priority: P2 Component: Catalina AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] The loop of LazyReplicatedMap.publishEntryInfo doesn't end. Reproduction condition Tomcat6.0.13 Three cluster configurations or more(tomcat1Atomcat2Atomcat3..). Use BackupManager. org.apache.catalina.tribes.tipis.LazyReplicatedMap.publishEntryInfo has do-while loop. The end condition of this loop is "success==true" or "firstIdx==nextIdx". In the 157th line (UniqueId id = getChannel().send(backup, msg, getChannelSendOptions())), If ChannelException is thrown (For instance, Tomcat of the destination is stopped), success keeps false. Therefore, it tries to send MapMessage to the next backup node. However, The 157th line is Member next = members[firstIdx]. Because firstIdx is immutable, MapMessage is send to The same node last time. As a result, ChannelException is thrown again. In this case, success keeps false forever. In addition, firstIdx==nextIdx never consists. Because firstIdx is immutable, and nextIdx is either 0 or firstIdx + 1. (Both firstIdx and nextIdx never become 0 in three cluster configurations or more(tomcat1Atomcat2Atomcat3..).) Thus, When ChannelException is thrown once, success keeps false and firstIdx==nextIdx never consists. As a result, The do-while loop of LazyReplicatedMap.publishEntryInfo doesn't end. The following messages are repeatedly output. *** Jul 19, 2007 4:23:05 PM org.apache.catalina.tribes.tipis.LazyReplicatedMap publishEntryInfo SEVERE: Unable to replicate backup key:C46A261B805660196F84A9832F6DFC8B.tomcat1 to backup:org.apache.catalina.tribes.membership.MemberImpl [tcp://XXXXXXXX:14001,XXXXXXXX,14001, alive=2735,id={-83 97 -47 -57 117 -79 76 -12 -97 -115 19 -40 -88 -34 -12 -92 }, payload={}, command={}, domain= {}, ]. Reason:Send failed, attempt:2 max:1; Faulty members:tcp://XXXXXXXX:14001; org.apache.catalina.tribes.ChannelException: Send failed, attempt:2 max:1; Faulty members:tcp://XXXXXXXX:14001; ...omits at org.apache.catalina.tribes.group.GroupChannel.send (GroupChannel.java:175) at org.apache.catalina.tribes.tipis.LazyReplicatedMap.publishEntryInfo (LazyReplicatedMap.java:157) at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.put (AbstractReplicatedMap.java:878) at org.apache.catalina.tribes.tipis.AbstractReplicatedMap.put (AbstractReplicatedMap.java:864) at org.apache.catalina.session.ManagerBase.add(ManagerBase.java:740) at org.apache.catalina.session.StandardSession.setId (StandardSession.java:368) at org.apache.catalina.ha.session.DeltaSession.setId (DeltaSession.java:243) at org.apache.catalina.session.ManagerBase.createSession (ManagerBase.java:829) at org.apache.catalina.session.StandardManager.createSession (StandardManager.java:291) ...omits Caused by: java.net.ConnectException: Connection refused: no further information at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect (SocketChannelImpl.java:527) at org.apache.catalina.tribes.transport.nio.NioSender.process (NioSender.java:87) at org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop (ParallelNioSender.java:130) ... 42 more *** -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]