You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Jonathan Valliere (Jira)" <ji...@apache.org> on 2021/08/04 20:55:00 UTC

[jira] [Updated] (DIRMINA-1147) Concurrency problem on write interest

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

Jonathan Valliere updated DIRMINA-1147:
---------------------------------------
    Description: 
*THIS IS A MAJOR ISSUE; I've seen it dozens of times today occurring during an event write and the concurrent send/write from another thread.*

Write interest is not concurrent and full of issues relating to the synchronization between the backlog queue and the atomic flag write interest.  It is possible to check for a queue to be not full, and add to the queue whereas the queue is emptied and write interest is disabled before the additional item is added to the queue.

What happens is 2-3 atomic operations occur and cannot/do not check to see whether the state changed between the time of assertion and subsequent action.

The scheduledFlush queue also suffers from the same concurrency problem.  Events may be added to the queue after the scheduledFlush operation has removed it from the scheduledFlush queue and after queue is empited causing items to be added to the backlog but not trigger the scheduledFlush queue or interest.

  was:
*THIS IS A MAJOR ISSUE; I've seen it dozens of times today occurring during an event write and the send/write from another thread.*

Write interest is not concurrent and full of issues relating to the synchronization between the backlog queue and the atomic flag write interest.  It is possible to check for a queue to be not full, and add to the queue whereas the queue is emptied and write interest is disabled before the additional item is added to the queue.

What happens is 2-3 atomic operations occur and cannot/do not check to see whether the state changed between the time of assertion and subsequent action.

The scheduledFlush queue also suffers from the same concurrency problem.  Events may be added to the queue after the scheduledFlush operation has removed it from the scheduledFlush queue and after queue is empited causing items to be added to the backlog but not trigger the scheduledFlush queue or interest.


> Concurrency problem on write interest
> -------------------------------------
>
>                 Key: DIRMINA-1147
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-1147
>             Project: MINA
>          Issue Type: Bug
>          Components: Transport
>    Affects Versions: 2.1.4
>         Environment: AdoptJDK 11
>            Reporter: Jonathan Valliere
>            Assignee: Jonathan Valliere
>            Priority: Critical
>             Fix For: 2.2.0
>
>
> *THIS IS A MAJOR ISSUE; I've seen it dozens of times today occurring during an event write and the concurrent send/write from another thread.*
> Write interest is not concurrent and full of issues relating to the synchronization between the backlog queue and the atomic flag write interest.  It is possible to check for a queue to be not full, and add to the queue whereas the queue is emptied and write interest is disabled before the additional item is added to the queue.
> What happens is 2-3 atomic operations occur and cannot/do not check to see whether the state changed between the time of assertion and subsequent action.
> The scheduledFlush queue also suffers from the same concurrency problem.  Events may be added to the queue after the scheduledFlush operation has removed it from the scheduledFlush queue and after queue is empited causing items to be added to the backlog but not trigger the scheduledFlush queue or interest.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@mina.apache.org
For additional commands, e-mail: dev-help@mina.apache.org