You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Yakov Zhdanov (JIRA)" <ji...@apache.org> on 2016/12/26 09:49:58 UTC

[jira] [Commented] (IGNITE-4476) GridIoManger must always process messages asynchronously

    [ https://issues.apache.org/jira/browse/IGNITE-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15778013#comment-15778013 ] 

Yakov Zhdanov commented on IGNITE-4476:
---------------------------------------

Vova, please provide example when this behavior leads to a deadlock.

I would agree that we need to put message processing to a stripe when we move to proper thread per partition but this should be done when partition is being sent to remote node during rebalancing.

> GridIoManger must always process messages asynchronously
> --------------------------------------------------------
>
>                 Key: IGNITE-4476
>                 URL: https://issues.apache.org/jira/browse/IGNITE-4476
>             Project: Ignite
>          Issue Type: Task
>          Components: general
>    Affects Versions: 1.8
>            Reporter: Vladimir Ozerov
>             Fix For: 2.0
>
>
> *Problem*
> If message is to be sent to remote node, we just send it (surprise :-)). But if message is to be sent to local node, we have a strange "optimization" - we process it synchronously in the same thread. 
> This is wrong as it easily leads to all kind of weird starvations and deadlocks.
> *Solution*
> Never ever process messages synchronously. For local node we should put message runnable into appropriate thread pool and exit.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)