You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2010/04/06 11:12:16 UTC

DO NOT REPLY [Bug 49051] New: Decrease in response by TcpFailureDetector.

https://issues.apache.org/bugzilla/show_bug.cgi?id=49051

           Summary: Decrease in response by TcpFailureDetector.
           Product: Tomcat 6
           Version: 6.0.26
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Cluster
        AssignedTo: dev@tomcat.apache.org
        ReportedBy: kfujino@apache.org


[Configuration]
Cluster configuration.
TcpFailureDetector is used. 
Synchronous replication

ChannelException is thrown when the destination node downs in the session
replication.
ChannelException is caught by TcpFailureDetector, 
and verifies the member in TcpFailureDetector#memberDisappeared.

In TcpFailureDetector#memberAlive method, 
the member who failed in replication is checked to see if the member really is
down.
Because member already is gone, TcpFailureDetector#memberAlive do the timeout
in 1 sec(default 1 sec).
Then, member is removed from membership by membership#removeMember, 
and super.memberDisappeared(member) will be called. 

TcpFailureDetector#memberDisappeared is as follows. 
===
public void memberDisappeared(Member member) {
...skip
    synchronized (membership) {
        //check to see if the member really is gone
        //if the payload is not a shutdown message
        if (shutdown || !memberAlive(member)) {
            //not correct, we need to maintain the map
            membership.removeMember( (MemberImpl) member);
            removeSuspects.remove(member);
            notify = true;
        } else {
            //add the member as suspect
            removeSuspects.put(member, new Long(System.currentTimeMillis()));
        }
    }
...skip
}
===
All threads to wait for the acquisition of the lock of membership call the
memberAlive method every time. 
And, the timeout will be done every time in 1 sec. 
As result,
in high-concurrent, decrease in a cruel response may happen.

For instance, 
when 100 threads waiting for the lock of membership, 
the thread to have acquired the lock at the end can not return the response for
100 sec. 

If member has not already existed in membership, TcpFailureDetector#memberAlive
method need not be called. 

I made a patch.

Best regards.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

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


DO NOT REPLY [Bug 49051] Decrease in response by TcpFailureDetector.

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=49051

--- Comment #1 from Keiichi Fujino <kf...@apache.org> 2010-04-06 09:13:50 UTC ---
Created an attachment (id=25233)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=25233)
TcpFailureDetector's patch

I made a patch.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

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


DO NOT REPLY [Bug 49051] Decrease in response by TcpFailureDetector.

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=49051

--- Comment #2 from Keiichi Fujino <kf...@apache.org> 2010-04-06 09:39:29 UTC ---
Fixed in trunk and proposed for 6.0.x.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

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


DO NOT REPLY [Bug 49051] Decrease in response by TcpFailureDetector.

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=49051

Keiichi Fujino <kf...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #3 from Keiichi Fujino <kf...@apache.org> 2010-04-09 08:47:12 UTC ---
This fix applied to 6.0, will be in 6.0.27 onwards.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

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