-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Proxy doesn't clean up after buffer sees a client close? #899
Comments
Potentialy related tout #887 |
thanks for the helpful bug report, @sfroment ! |
The voting-svcm error:
Then it restart well but conduit doesn't communicate with the new server |
The "buffer closed" error is this one right here:https://github.com/tower-rs/tower/blob/master/tower-buffer/src/lib.rs#L129 We wrap the h2 client service to the endpoint in a |
@seanmonstar so to confirm, this is a bug? If so can you update the title with a better description and we can add it to the 0.5.0 milestone? |
I actually suspect there is a bug here: while it's fine for the connect task to error, and expected if the other service isn't accepting connections, I think we might not properly clean up on our end when that happens. When this error shows itself, does it error forever on? That would mean we saw the closure, and the closed buffer binding is still in the proxy yelling at everyone. If it only appears for a tiny period of time, then it's probably not a bug, if it does clean up, and in between, it has to say something... |
Yep for this pod the proxy will still be yelling, I need to kill it to get it working again |
So we probably need to do 2 things here:
|
@seanmonstar yeah, that's my expectation, too: that connection failures should result in backpressure until a connection can be satisfied or the bind timeout is reached |
Hello,
I'm getting turning buffer 500, with my small understanding of conduit the conduit flow of my request is svc-b -> conduit_proxy of svc-b -> conduit_proxy of svc-a -> svc->a
1st request before kill
2nd request after the kill
In the conduit proxy logs of svc-a:
You can reproduce the error with the demo app just scale the voting pods to 2.
I've changed a bit the server.go file to get a grpc client that do many request
then just run the go and you'll see error rapidly on voting
The text was updated successfully, but these errors were encountered: