Skip to content
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

Http2: outgoing request streams not closed when upstream finished #2777

Closed
jrudolph opened this issue Oct 21, 2019 · 2 comments · Fixed by #2779
Closed

Http2: outgoing request streams not closed when upstream finished #2777

jrudolph opened this issue Oct 21, 2019 · 2 comments · Fixed by #2779

Comments

@jrudolph
Copy link
Member

@jrudolph jrudolph commented Oct 21, 2019

In the Http2 stream multiplexer only onDownstreamFinish from the connection is closing down all the outStreams but not onUpstreamFinish / onUpstreamFailure.

That means that for any connection error or completion or the idle-timeout might leave user streams dangling. It depends on how the race between finishing and cancellation plays out. If cancellation is first, then everything is fine, otherwise, the outstreams are left dangling.

This is the root cause of akka/akka-grpc#664.

jrudolph added a commit to jrudolph/akka-http that referenced this issue Oct 22, 2019
Fixes akka#2777
jrudolph added a commit to jrudolph/akka-http that referenced this issue Oct 22, 2019
Fixes akka#2777
jrudolph added a commit to jrudolph/akka-http that referenced this issue Oct 22, 2019
Fixes akka#2777
@jrudolph

This comment has been minimized.

Copy link
Member Author

@jrudolph jrudolph commented Oct 22, 2019

#2777 also fixed a related issue for request streams.

@jrudolph jrudolph added this to the 10.1.11 milestone Oct 22, 2019
@jroper

This comment has been minimized.

Copy link
Contributor

@jroper jroper commented Oct 23, 2019

@jrudolph Thanks for the diagnosis and fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.