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
SharedResourceHolder should roughly handle exceptions during close #6002
Comments
We run into the same problem. A fast solution would be fine! |
voidzcy
added a commit
to voidzcy/grpc-java
that referenced
this issue
Aug 8, 2019
voidzcy
added a commit
to voidzcy/grpc-java
that referenced
this issue
Aug 8, 2019
voidzcy
added a commit
that referenced
this issue
Aug 8, 2019
voidzcy
added a commit
to voidzcy/grpc-java
that referenced
this issue
Aug 8, 2019
voidzcy
added a commit
to voidzcy/grpc-java
that referenced
this issue
Aug 8, 2019
voidzcy
added a commit
to voidzcy/grpc-java
that referenced
this issue
Aug 8, 2019
voidzcy
added a commit
that referenced
this issue
Aug 8, 2019
voidzcy
added a commit
that referenced
this issue
Aug 8, 2019
voidzcy
added a commit
that referenced
this issue
Aug 8, 2019
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
@xCASx reported a bug where gRPC would get "hung" after a point, which included the following stack trace:
If we look in SharedResourceHolder, if
resource.close(instance)
fails throwsinstances.remove(resource)
is not run. While we shouldn't encourage exceptions to be thrown during close, we would like it to be able to recover eventually. In this case, any future resource fetches will get the partially-closed resource, which will immediately fail.grpc-java/core/src/main/java/io/grpc/internal/SharedResourceHolder.java
Lines 145 to 146 in d7b9438
@xCASx, a workaround would be to keep the client objects alive for as long as possible. We generally encourage that for performance, but as long as one client object is alive we won't attempt to shut down this executor.
The text was updated successfully, but these errors were encountered: