[jboss-jira] [JBoss JIRA] (WFLY-6294) Session draining always takes maximum configured timeout
Radoslav Husar (JIRA)
issues at jboss.org
Wed Mar 23 18:08:00 EDT 2016
[ https://issues.jboss.org/browse/WFLY-6294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13181624#comment-13181624 ]
Radoslav Husar commented on WFLY-6294:
--------------------------------------
Awesome investigation [~aogburn], thanks. There is bunch of problems in the current implementation that will be fixed:
1/ *all* sessions that are in the node will be subject to draining while we want to only attempt to drain sessions for which given node is the primary owner (Jira TBD)
2/ passivated sessions are not accounted for session draining -- this will NOT be fixed as the sessions are likely to be not used any more, but mainly this would mean we would bring all the sessions out of passivation, trigger session activated events and other undesirable side effects
3/ the notification schema does not work, since the notification will always happen BEFORE the session is actually removed from the manager -- we will poll and wait with a smaller timeouts -- submitted as fix for MODCLUSTER-478
4/ the server might look hang while draining, so we should log what is it going to attempt to drain -- submitted as part of PR for MODCLUSTER-478
> Session draining always takes maximum configured timeout
> --------------------------------------------------------
>
> Key: WFLY-6294
> URL: https://issues.jboss.org/browse/WFLY-6294
> Project: WildFly
> Issue Type: Bug
> Components: Clustering
> Affects Versions: 10.0.0.Final
> Reporter: Aaron Ogburn
> Assignee: Radoslav Husar
> Priority: Minor
>
> The mod_cluster session drain wait is not ending as expected. mod_cluster adds a session listener to be notified of session destruction. That is fired appropriately, but when the listener is invoked, the infinispan session manager still reports the session as active. Thus, this drain loop doesn't end after the notify because it still sees the active session:
> {code}
> while ((remainingSessions > 0) && (noTimeout || (timeout > 0))) {
> ModClusterLogger.LOGGER.drainSessions(remainingSessions, context.getHost(), context);
> listener.wait(noTimeout ? 0 : timeout);
> current = System.currentTimeMillis();
> timeout = end - current;
> remainingSessions = context.getActiveSessionCount();
> }
> {code}
> Can the listeners be invoked when the session is fully removed and no longer considered active?
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list