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

           Summary: When non-primary node changes into a primary node,
                    isPrimarySession is not changed to true.
           Product: Tomcat 7
           Version: 7.0.2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Cluster
        AssignedTo: dev@tomcat.apache.org
        ReportedBy: kfuj...@apache.org


If BackupManager is used,
when a primary node is switched, 
DeltaSession#isPrimarySession is not changed to true. 

Non-primary node changes into a primary node 
when a primary node is stopped or we get a non-primary session. 

If a primary node is stopped, a primary node is switched. 
In AbstractReplicatedMap, when a primary node is switched, 
MapOwner(BackupManager)#objectMadePrimay is called. 
However, isPrimarySession does not change to true in this method. 
=====BackupManager#objectMadePrimay=====
public void objectMadePrimay(Object key, Object value) {
    if (value!=null && value instanceof DeltaSession) {
        DeltaSession session = (DeltaSession)value;
        synchronized (session) {
            session.access();
            session.endAccess();
        }
    }
}
=====

If we get a non-primary session,  a primary node is switched. 
However, isPrimarySession does not change to true. 
It is only a change of primary node.

I made a patch.
It contains the following. 
isPrimarySession is set to true in BackupManager#objectMadePrimay.
When get() is called in non-primary node, MapOwner#objectMadePrimay is called.


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

Reply via email to