mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] Closed: (DIRMINA-709) PENDING session is removed and added endlessly -- garbage allocation and high CPU usage problem
Date Fri, 22 Jan 2010 17:35:22 GMT

     [ https://issues.apache.org/jira/browse/DIRMINA-709?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Emmanuel Lecharny closed DIRMINA-709.
-------------------------------------


> PENDING session is removed and added endlessly  -- garbage allocation and high CPU usage
problem
> ------------------------------------------------------------------------------------------------
>
>                 Key: DIRMINA-709
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-709
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.0-M4
>         Environment: Debian Linux, kernel 2.6.24
>            Reporter: Victor N
>            Assignee: Edouard De Oliveira
>             Fix For: 2.0.0-RC1
>
>
> (This problem was discussed in mail lists, I will copy it here).
> Seems I have found a bug with IoSession - I can see that a "PREPARING" session is not
removed correctly from queue.
> When some session is in PREPARING state, it is removed from "removingSessions" queue
but right after that it is added to this queue again! So this session is added to the queue
and removed from it until forever.
> As a result, this give us significant garbage allocation, so CPU spends most of time
in garbage collector (I can see this is JConsole).
> I see comments there in AbstractPollingIoProcessor class:
> private int remove() {
> ...
>     case PREPARING:
>                 // Retry later if session is not yet fully initialized.
>                 // (In case that Session.close() is called before      addSession() is
processed)
>                 scheduleRemove(session);
>                 return removedSessions;
> ...
> }
> I have added logging to this code, and I can see that the SAME session is removed and
added again and again.
> Can somebody explain this logic please? Why don't we remove the PENDING  session? Or
maybe is there a workaround for this.
> Sorry, I can not provide a test for this issue, but it is reproduced almost every day
at out production servers under some load. Maybe, you can reproduce it by adding a delay in
addSession() and then closing the session during this delay.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message