[ https://issues.apache.org/jira/browse/GEODE-2889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15999168#comment-15999168 ]
ASF GitHub Bot commented on GEODE-2889: --------------------------------------- Github user upthewaterspout commented on the issue: https://github.com/apache/geode/pull/494 @jhuynh1 @jdeppe-pivotal > 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)