-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
superpool leaks connections on graph failure #20902
Comments
It's probably not related but I just want to mention that I fixed one leak in |
Thanks for reporting, let's validate after 2.4.8 |
Could you in the meantime try on 2.4.7? |
I tested on 2.4.7 and unfortunately the problem remains. |
Thanks for confirming, hope to have time to look into it. |
Sound very like the issue I reported here: #21304 |
Ticket moved to http://github.com/akka/akka-http If you are interested in contributing or tracking this issue, please comment in akka-http instead from now on :-) |
opened based on discussion in forum:
https://groups.google.com/forum/#!topic/akka-user/MJJADiJZOrY
Scala version: 2.11.8
akka version: 2.4.6
I have a graph that is leaking http connections from an Akka-Http Superpool when the graph fails. The general shape of the graph is:
A ~> B ~> C ~> D ~> E ~> F
The stage actions are:
A emits HttpRequests
B is the superpool (created by Http().superPool())
C does some validation on the HttpResponse but leaves the ResponseEntity alone
D uses flatMapConcat to emit the ResponseEntity ByteString Sources
E Collects the ResponseEntity ByteStrings into a single chunk
F further processes the ByteString
Which all works fine if the graph completes successfully. However if stage F fails and fails the graph then one connection is never released and eventually a materialization of the graph stalls forever waiting for stage B to process a request.
What I believe is happening is that when stage F fails, the ResponseEntity Source in stage C has not been sinked and so the connection it occupies is not released.
Is there a way to sink that ResponseEntity source on graph failure or alternatively, is there a better way to push a series of HttpRequests through a superPool that is aware of the entityBody and sinks on failure?
Here is a reproducible example of this problem.
thanks,
Spencer
The text was updated successfully, but these errors were encountered: