[
https://issues.apache.org/jira/browse/IGNITE-4381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Semen Boikov updated IGNITE-4381:
---------------------------------
Description:
If internal threads execute blocking operation this can cause starvation and
hangs (example of issue https://issues.apache.org/jira/browse/IGNITE-4371).
Ideally we need a way to 'automatically' find all such places in code,
straightforward idea is add assert in GridFutureAdapter.get - assert should
fail if it is called by system thread and future is not finished. At least one
issue here is that currently system threads can be blocked on operation on
utility/marshaller cache, so assert should also take it into account.
Another idea is execute tests with number of threads in all pools = 1, this
also should reveal issues with blocking calls.
was:
If internal threads execute blocking operation this can cause starvation and
hangs (example of issue https://issues.apache.org/jira/browse/IGNITE-4371).
Ideally we need a way to 'automatically' find all such places in code,
straightforward idea is add assert in GridFutureAdapter.get - assert should
fail if it is called by system thread and future is not finished. At least one
issue here is that currently system threads can be blocked on operation on
utility/marshaller cache, so assert should also take it into account.
> Need ensure that internal threads do not execute blocking operations
> --------------------------------------------------------------------
>
> Key: IGNITE-4381
> URL: https://issues.apache.org/jira/browse/IGNITE-4381
> Project: Ignite
> Issue Type: Task
> Components: general
> Reporter: Semen Boikov
> Assignee: Konstantin Dudkov
> Fix For: 2.0
>
>
> If internal threads execute blocking operation this can cause starvation and
> hangs (example of issue https://issues.apache.org/jira/browse/IGNITE-4371).
> Ideally we need a way to 'automatically' find all such places in code,
> straightforward idea is add assert in GridFutureAdapter.get - assert should
> fail if it is called by system thread and future is not finished. At least
> one issue here is that currently system threads can be blocked on operation
> on utility/marshaller cache, so assert should also take it into account.
> Another idea is execute tests with number of threads in all pools = 1, this
> also should reveal issues with blocking calls.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)