You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Trustin Lee (JIRA)" <ji...@apache.org> on 2008/03/12 05:14:46 UTC
[jira] Created: (DIRMINA-549) Inconsistency in managed session set
under heavy load
Inconsistency in managed session set under heavy load
-----------------------------------------------------
Key: DIRMINA-549
URL: https://issues.apache.org/jira/browse/DIRMINA-549
Project: MINA
Issue Type: Bug
Components: Core
Affects Versions: 1.1.6, 1.0.9
Reporter: Trustin Lee
Assignee: Trustin Lee
Priority: Critical
Fix For: 1.0.10, 1.1.7
The detailed analysis can be found at:
http://mina.markmail.org/search/?q=sessionClosed%20is%20not%20called%20sometimes#query:sessionClosed%20is%20not%20called%20sometimes+page:1+mid:cc5uj66xt5mb5rrs+state:results
The thing is that IoServiceListenerSupport.fireSessionCreated() and fireSessionDestroyed() can be invoked at the same time by more than one I/O processor threads, and that can cause sessionClosed event is not fired at all under heavy load. The solution is to acquire a per-service lock whenever managed session set changes. So far, we were acquiring locks separated as two phases, and that was the root cause of the problem. By fixing this issue, performance might decrease slightly, but accuracy is the first concern for us.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (DIRMINA-549) Inconsistency in managed session set
under heavy load
Posted by "Trustin Lee (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DIRMINA-549?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Trustin Lee resolved DIRMINA-549.
---------------------------------
Resolution: Fixed
Fixed by moving more code blocks under the synchronized (managedSessions) block.
> Inconsistency in managed session set under heavy load
> -----------------------------------------------------
>
> Key: DIRMINA-549
> URL: https://issues.apache.org/jira/browse/DIRMINA-549
> Project: MINA
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.0.9, 1.1.6
> Reporter: Trustin Lee
> Assignee: Trustin Lee
> Priority: Critical
> Fix For: 1.0.10, 1.1.7
>
>
> The detailed analysis can be found at:
> http://mina.markmail.org/search/?q=sessionClosed%20is%20not%20called%20sometimes#query:sessionClosed%20is%20not%20called%20sometimes+page:1+mid:cc5uj66xt5mb5rrs+state:results
> The thing is that IoServiceListenerSupport.fireSessionCreated() and fireSessionDestroyed() can be invoked at the same time by more than one I/O processor threads, and that can cause sessionClosed event is not fired at all under heavy load. The solution is to acquire a per-service lock whenever managed session set changes. So far, we were acquiring locks separated as two phases, and that was the root cause of the problem. By fixing this issue, performance might decrease slightly, but accuracy is the first concern for us.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (DIRMINA-549) Inconsistency in managed session set
under heavy load
Posted by "Emmanuel Lecharny (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DIRMINA-549?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Emmanuel Lecharny closed DIRMINA-549.
-------------------------------------
> Inconsistency in managed session set under heavy load
> -----------------------------------------------------
>
> Key: DIRMINA-549
> URL: https://issues.apache.org/jira/browse/DIRMINA-549
> Project: MINA
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.0.9, 1.1.6
> Reporter: Trustin Lee
> Assignee: Trustin Lee
> Priority: Critical
> Fix For: 1.0.10, 1.1.7
>
>
> The detailed analysis can be found at:
> http://mina.markmail.org/search/?q=sessionClosed%20is%20not%20called%20sometimes#query:sessionClosed%20is%20not%20called%20sometimes+page:1+mid:cc5uj66xt5mb5rrs+state:results
> The thing is that IoServiceListenerSupport.fireSessionCreated() and fireSessionDestroyed() can be invoked at the same time by more than one I/O processor threads, and that can cause sessionClosed event is not fired at all under heavy load. The solution is to acquire a per-service lock whenever managed session set changes. So far, we were acquiring locks separated as two phases, and that was the root cause of the problem. By fixing this issue, performance might decrease slightly, but accuracy is the first concern for us.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.