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

Aleksey Plekhanov commented on IGNITE-12252:
--------------------------------------------

[~avinogradov] OOME should be handled by failure handler in any pool, since if 
OOME fired once it may happen again at any time in some other unpredictable 
place and we can't be sure about node consistency in this case. General-purpose 
pools should not handle all errors and unpredicted thread terminations. Errors 
which proposed to top-level should be handled only for critical workers on 
workers' level. There is usually catch or finally block with failure handler 
call for such workers.

> Unchecked exceptions during rebalancing should be handled
> ---------------------------------------------------------
>
>                 Key: IGNITE-12252
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12252
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Aleksey Plekhanov
>            Assignee: Nikolai Kulagin
>            Priority: Critical
>             Fix For: 2.8
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Rebalancing should handle unchecked exceptions by failure handler. In current 
> implementation unchecked exceptions just ignored. They were handled by IO 
> worker before IGNITE-3195.
> Reproducer:
> {code:java}
>     @Test
>     public void testRebalanceUncheckedError() throws Exception {
>         IgniteEx ignite0 = startGrid(new 
> IgniteConfiguration().setIgniteInstanceName("ignite0"));
>         IgniteCache<Integer, Integer> cache = 
> ignite0.getOrCreateCache(DEFAULT_CACHE_NAME);
>         IgniteDataStreamer<Integer, Integer> streamer = 
> ignite0.dataStreamer(DEFAULT_CACHE_NAME);
>         for (int i = 0; i < 100_000; i++)
>             streamer.addData(i, i);
>         streamer.flush();
>         IgniteEx ignite1 = startGrid(new 
> IgniteConfiguration().setIgniteInstanceName("ignite1")
>             
> .setIncludeEventTypes(EventType.EVT_CACHE_REBALANCE_OBJECT_LOADED));
>         ignite1.events().localListen(e -> {
>             throw new Error();
>         }, EventType.EVT_CACHE_REBALANCE_OBJECT_LOADED);
>         awaitPartitionMapExchange();
>     }
> {code}



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

Reply via email to