-
Notifications
You must be signed in to change notification settings - Fork 53
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
fix: ensure that channel pool ref count never goes negative (take2) #2065
Conversation
I'm not sure the root cause that might cause this, but this guard should tone down the noise that is created and help us identify the root cause
gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java
Show resolved
Hide resolved
|
||
void release() { | ||
if (!wasReleased.compareAndSet(false, true)) { | ||
Exception e = new IllegalStateException("Entry was already released"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is another stacktrace we don't want to log, can we just log the WARNING without a stacktrace?
Or if we think this is a true error, then we can throw the Exception?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We definitely need a stacktrace here, it will tell us how the refcount got negative. Otherwise we are no wiser than before.....we are just hiding the problem under the rug. And in this case alert firing woud be correct
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To me Entry was already released
is a true error, why are we just logging instead of throwing an exception?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because throwing will bubble up to the enduser, who had nothing to do with the error. Instead I want to keep it localized to the double release and protect the rest of the application
gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc/ChannelPool.java
Show resolved
Hide resolved
[gapic-generator-java-root] Kudos, SonarCloud Quality Gate passed! |
[java_showcase_integration_tests] SonarCloud Quality Gate failed. 0 Bugs 78.9% Coverage Catch issues before they fail your Quality Gate with our IDE extension SonarLint |
[java_showcase_unit_tests] Kudos, SonarCloud Quality Gate passed! |
@igorbernstein2 @blakeli0 Can you please create a corresponding issue for better tracking? |
Created #2081 to track it. |
Closing in favor of #2185 |
I'm not sure the root cause that might cause this, but this guard should tone down the noise that is created and help us identify the root cause
Thank you for opening a Pull Request! For general contributing guidelines, please refer to contributing guide
Before submitting your PR, there are a few things you can do to make sure it goes smoothly:
Fixes #<issue_number_goes_here> ☕️