Dan Smith created GEODE-2889:
--------------------------------

             Summary: Generic session module should touch sessions rather than 
recreate the native session
                 Key: GEODE-2889
                 URL: https://issues.apache.org/jira/browse/GEODE-2889
             Project: Geode
          Issue Type: Bug
          Components: http session
            Reporter: Dan Smith


The session module for generic application servers is doing some magic to try 
to recreate native sessions if they have been idle for too long. This can cause 
failures if the container expires a session concurrently, because the 
expiration can happen after we have checked if the session is valid, but before 
we can read the session creation time.

{noformat}
/*
         * This is a massively gross hack. Currently, there is no way to 
actually update the last
         * accessed time for a session, so what we do here is once we're into 
X% of the session's
         * TTL we grab a new session from the container.
         *
         * (inactive * 1000) * (pct / 100) ==> (inactive * 10 * pct)
         */
        if (session.getLastAccessedTime()
            - session.getCreationTime() > (session.getMaxInactiveInterval() * 10
                * percentInactiveTimeTriggerRebuild)) {
          HttpSession nativeSession = super.getSession();
          session.failoverSession(nativeSession);
        }
{noformat}

Instead of this, we should just call getSession on the container and have it 
update the last accessed time of the native session.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to