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

Session Expiration in Cluster broken after stopping one node

           Summary: Session Expiration in Cluster broken after stopping one
                    node
           Product: Tomcat 5
           Version: 5.0.21
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Catalina:Cluster
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]
                CC: [EMAIL PROTECTED]


After stopping one cluster node, expiration of the sessions replicated from 
this node to the other nodes is broken. This is due to a bug in 
DeltaManager.java. In line 882 there is a call to session.access(), which 
increases accessCount by 1. Since there is no call to session.endAccess, this 
session will never expire.

The same seems to be true in line 870. If it is necessary to update timestamps 
with session.access, you should also call session.setAccessCount(0) directly 
after. In line 870 this might be appropriate, in line 882 there is dreq.execute 
directly before and dreq.execute already calls session.access and 
session.endAccess, so I think one could drop line 882.

The Bug was first introduced in Version 1.8 of DeltaManager (TC 5.0.18).

Since there was already another bug relating to accessCount>0 it seems to be a 
good idea to check other uses of accessCount or session.access() as well.

Thanks for correcting.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to