Hi Pid

I think I found a problem. Could you tell me how to fix this?  Should I
report it to bugzilla?

SingleSignOn sessionEvent is destroying session, but DeltaSession is
notifying session expiration to other node on same cluster.  

== singlesignon ==
protected void deregister(String ssoId) {

        if (containerLog.isDebugEnabled())
            containerLog.debug("Deregistering sso id '" + ssoId + "'");

        // Look up and remove the corresponding SingleSignOnEntry
        SingleSignOnEntry sso = null;
        synchronized (cache) {
            sso = (SingleSignOnEntry) cache.remove(ssoId);
        }

        if (sso == null)
            return;

        // Expire any associated sessions
        Session sessions[] = sso.findSessions();
        for (int i = 0; i < sessions.length; i++) {
            if (containerLog.isTraceEnabled())
                containerLog.trace(" Invalidating session " +
sessions[i]);
            // Remove from reverse cache first to avoid recursion
            synchronized (reverse) {
                reverse.remove(sessions[i]);
            }
            // Invalidate this session
            sessions[i].expire();  <-- this is calling
deltasession.expire(true), then dltasession.expire(notify, true)
        }

        // NOTE:  Clients may still possess the old single sign on
cookie,
        // but it will be removed on the next request since it is no
longer
        // in the cache

    }

== deltasesion ==
public void expire(boolean notify) {
        expire(notify, true);
    }

    public void expire(boolean notify, boolean notifyCluster) {
        if (expiring)
            return;
        String expiredId = getIdInternal();

        if(expiredId != null && manager != null &&
           manager instanceof DeltaManager) {
            DeltaManager dmanager = (DeltaManager)manager;
            CatalinaCluster cluster = dmanager.getCluster();
            ClusterMessage msg = dmanager.requestCompleted(expiredId,
true);
            if (msg != null) {
                if(dmanager.doDomainReplication()) {
                    cluster.sendClusterDomain(msg);
                } else {
                    cluster.send(msg);
                }
            }
        }

        super.expire(notify);

        if (notifyCluster) {
            if (log.isDebugEnabled())
                log.debug(sm.getString("deltaSession.notifying",
 
((ClusterManager)manager).getName(), 
                                       new Boolean(isPrimarySession()), 
                                       expiredId));
            if ( manager instanceof DeltaManager ) {
                ( (DeltaManager) manager).sessionExpired(expiredId);
            }
        }
    }

Jun 28, 2010 3:05:53 PM org.apache.catalina.ha.session.DeltaManager stop
INFO: Manager [/cluster] expiring sessions upon shutdown
Jun 28, 2010 3:05:53 PM org.apache.catalina.authenticator.SingleSignOn
sessionEvent
FINE: Process session destroyed on
DeltaSession[EBEEECC91096DF7020488C1BDD75DF41.jvm2]
Jun 28, 2010 3:05:53 PM
org.apache.catalina.tribes.transport.nio.ParallelNioSender doLoop
FINER: ParallelNioSender - Sent msg:UniqueId{-2, -89, -62, -53, 103,
-39, 67, -1, -111, 52, -43, -84, -41, 66, 66, 31} at 2010-06-28
15:05:53.689 to tcp://{127, 0, 0, 1}:4010
Jun 28, 2010 3:05:53 PM
org.apache.catalina.tribes.group.ChannelCoordinator sendMessage
FINER: ChannelCoordinator - Sent msg:UniqueId{-2, -89, -62, -53, 103,
-39, 67, -1, -111, 52, -43, -84, -41, 66, 66, 31} at 2010-06-28
15:05:53.69 to {tcp://{127, 0, 0, 1}:4010}
Jun 28, 2010 3:05:53 PM org.apache.catalina.tribes.group.GroupChannel
send
FINER: GroupChannel - Sent msg:UniqueId{-2, -89, -62, -53, 103, -39, 67,
-1, -111, 52, -43, -84, -41, 66, 66, 31} at 2010-06-28 15:05:53.69 to
{tcp://{127, 0, 0, 1}:4010}
Jun 28, 2010 3:05:53 PM org.apache.catalina.tribes.group.GroupChannel
send
FINER: GroupChannel - Send Message:UniqueId{-2, -89, -62, -53, 103, -39,
67, -1, -111, 52, -43, -84, -41, 66, 66, 31} is
SingleSignOnMessage[action=3, ssoId=1C052A3927DC43EE6CAF27997F85C23B,
sessionId=null, username=null]
Jun 28, 2010 3:05:53 PM
org.apache.catalina.ha.authenticator.ClusterSingleSignOn deregister
FINE: SingleSignOnMessage Send with action 3
Jun 28, 2010 3:05:53 PM org.apache.catalina.authenticator.SingleSignOn
deregister
FINE: Deregistering sso id '1C052A3927DC43EE6CAF27997F85C23B'


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to