no back pressure when using singleRequest: Exceeded configured max-open-requests value of [32]

514 views
Skip to first unread message

Devon Miller

unread,
Dec 31, 2015, 5:39:31 PM12/31/15
to Akka User List
I have a flow that creates request objects and then issues them using singleRequest. The flow works fine, however, I encounter 

Response exception: akka.stream.BaseOverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32]
Response exception: akka.stream.BaseOverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32]
Response exception: akka.stream.BaseOverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32]
Response exception: akka.stream.BaseOverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32]
Response exception: akka.stream.BaseOverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32]
Response exception: akka.stream.BaseOverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32]
Response exception: akka.stream.BaseOverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32]
Response exception: akka.stream.BaseOverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32]
...

exceptions when pumping a large number of single requests through my flow, and hence a large number of "singleRequest" calls. Obviously, I could increase the configured amount, but its possible that I need to issue hundreds of single requests and could be quite variable so I could never set the amount to be large enough since I don't know the maximum value ahead of time.

I though that the underlying connection pool would have back pressure that bubbles up and keeps the request "queued" until a slot opens for the request to be executed, and hence, complete my future result returned from singleRequest once it is run.

But I am getting these errors so this does not appear to work the way I thought it would.

Do I need to configure my flow differently and have it be aware of the max-open-request limit in some way?

Devon Miller

unread,
Dec 31, 2015, 6:33:16 PM12/31/15
to Akka User List
I might add that I can add a buffer after my source and before the single request call, but even if I have the actor system or the HttpExt object, I cannot obtain the actual setting used in the specific cached connection pool that will be used. And hence, I could guess at the number through the config and hope that it did get set somehow, but I can't know for sure that I am using the right value. There does not appear to be a way to get a specific connection pool out of the HttpExt instance to obtain its settings object. Is this a case where I just have to set the connection pool settings directly for single requests and keep those settings around to configure the .buffer()?

Reply all
Reply to author
Forward
0 new messages