Closed
Description
When calling nextDelivery
to grab the next message from QueueingConsumer
, it is calling the blocking method on the queue, take()
, which will block forever.
The problem occurs then if the underlying channel dies, then the thread that called nextDelivery
will now be waiting forever.
The solution we had to in our code that uses this was to use the timeout version, and manually check if the channel had closed while we were waiting every time.
Possible solution: make both versions of nextDelivery
use a timeout (and spin in the case of the no-timeout version), check if the channel died, and throw a ShutdownSignalException
in that case.
Metadata
Metadata
Assignees
Labels
No labels