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/

Reply via email to