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

Edouard De Oliveira resolved DIRMINA-709.
-----------------------------------------

    Resolution: Fixed

> 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-M7
>
>
> (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.

Reply via email to