Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.5, 2.6
-
None
-
None
-
Docs Required
Description
Currently, we use explicit synchronous future.get() at some places when process messages from Communication SPI. This potentially may lead to deadlocks or thread-pool exhausting as was showed in IGNITE-9111 e.g.
To fix the problem we should determine all places in the code where we synchronously wait for some futures and try to either refactor these places or implement a special exception (which will contain such future) with subsequent retrying a runnable in low-level Communication SPI processing when future will be completed.