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=43053>.
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=43053

           Summary: Session doesn't do time-out when BackUpManager is used.
           Product: Tomcat 6
           Version: 6.0.13
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


I noticed a problem that the session doesn't do time-out when BackUpManager is 
used.
To detect the session time-out, ManagerBase.processExpires() of 
backgroundProcess is executed. 
In processExpires, the time-out of the session acquired in the 
ManagerBase.findSessions() is checked(isValid()). 
And, in findSessions(), the list of the session is acquired from session map 
(sessions). 
When BackUpManager is used, session map (sessions) becomes the instance of 
org.apache.catalina.tribes.tipis.AbstractReplicatedMap. 

Only the PRIMARY entry is returned in the method such as size(), entrySet() 
and keySet() of AbstractReplicatedMap. 
#PRIMARY entry means entry.isPrimary() returns true.
#I found sizeFull(), keySetFull() and entrySetFull().
#These methods return all the entries. 

Therefore, the target session by ManagerBase.processExpires() for the session 
time-out check becomes only 
PRIMARY session. 
The BACKUP session and the PROXY session become off the subject of the session 
time-out check. 

When Tomcat in the cluster does Down, the session(PRIMARY) created by Tomcat 
that does Down cannot do the time-out in BACKUP and PROXY. 

For instance,
It has one session (sessionA) in three cluster configurations 
(tomcat1,tomcat2,tomcat3). 
The first state of sessionA.
 sessionA is PRIMARY in tomcat1. 
 sessionA is BACKUP in tomcat2. 
 sessionA is PROXY in tomcat3. 

Now, tomcat1 does down (before doing the time-out).
state of sessionA is ...
 tomcat1 is down.
 sessionA is BACKUP in tomcat2. 
 sessionA is PROXY in tomcat3. 

This means PRIMARY doesn't exist. 
Of course if sessionA is accessed again, either tomcat2 or tomcat3 becomes 
PRIMARY. 
However, it is not guaranteed that sessionA is accessed again. 

The target of the session time-out when BackUpManager is used is only PRIMARY.
(see above)
As a result, sessionA never do time-out.

-- 
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