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)