tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 42937] New: - The loop of LazyReplicatedMap.publishEntryInfo doesn't end.
Date Thu, 19 Jul 2007 09:35:44 GMT
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: tomcat-dev@jakarta.apache.org
        ReportedBy: keiichi.fujino@gmail.com


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: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message