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(tomcat1Atomcat2Atomcat3..).
 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(tomcat1Atomcat2Atomcat3..).)

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]

Reply via email to