Hi Alex, There's a fair bit of source involved, I think I'd need to build a reproducer app. I'd like to talk it through a bit before putting in that effort.
There are actually three parts: Client --> Service A --> Service B A call from Client to Service A causes Service A to request a series of items from Service B. While Service B is calculating and returning them, the call in Service A blocks on a signal with a timeout. Elements sent from service B to service A are sent via Ignite messaging to a listener established by the call in Service A. If I understand you correctly, you are saying the 8 requests from Client to Service A that are waiting for a signal mean that messages from Service B to Service A never arrive because there are no available threads in the pool (default size:8) to receive the inbound information? If so, is there a better asynchronous pattern that could be used in Service A? FYI, the reason I am using the message pattern from Service B to Service A is that the quantity of information sent between the two may be quite large meaning returning it as a single request result is impractical. Thanks, Raymond. -----Original Message----- From: afedotov [mailto:alexander.fedot...@gmail.com] Sent: Wednesday, October 4, 2017 10:37 PM To: user@ignite.apache.org Subject: Re: Possible dead lock when number of jobs exceeds thread pool Hi, That actually looks like a starvation in public pool where compute tasks are processed. Please share PerformRenderer() source. Kind regards, Alex -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/