-
Notifications
You must be signed in to change notification settings - Fork 907
Blocking call inside of a software.amazon.awssdk.http.nio.netty.internal.BetterSimpleChannelPool.close #2145
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
Comments
Hi @lanwen, thank you for reaching out and sorry for the delayed response. The Please let us know if you have further questions. |
@zoewangg thank you for the reply. However, I would like to know if there is an option to switch to a fully non-blocking behaviour, as right now if the error occurs during the close, I can't really handle it properly - same way as with async, as I don't fully own the execution loop. But with a reactive application with a limited number of threads blocking operation here could lead to more serious issues with a service - like full unavailability during the blocking call. Also I can see, that closeAsync returns Feature, which should keep an exception (in theory) if something goes wrong. May I ask why this path wasn't chosen? |
Thanks for the clarification. Actually, We could consider introducing a nonblocking close method in the |
There are two known occurrences where the SDK may currently block from within a Netty EventLoop: 1. aws#2145 2. aws#2360 Allowing BlockHound to forbid these operations may fail existing integration and stability tests. While we have outstanding issues to fix these items, until they are resolved, we need to allow our existing integration tests to continue to pass. We should explicitly allow-list these methods so that they do not interfere with existing tests and so that we maintain visibility on future regression detection.
* Allow-list known blocking methods from BlockHound There are two known occurrences where the SDK may currently block from within a Netty EventLoop: 1. #2145 2. #2360 Allowing BlockHound to forbid these operations may fail existing integration and stability tests. While we have outstanding issues to fix these items, until they are resolved, we need to allow our existing integration tests to continue to pass. We should explicitly allow-list these methods so that they do not interfere with existing tests and so that we maintain visibility on future regression detection.
Hello, +1 In our system we also experience this issue. As now we whitelisted it in block hound. Any idea what is a plan (ETA) for fixing it? Thank you. Regards, |
…e14ffdfa9 Pull request: release <- staging/abec8754-2103-4749-adab-a43e14ffdfa9
Since v2 is claimed to be non-blocking, we still facing a blocking call in
software.amazon.awssdk.http.nio.netty.internal.BetterSimpleChannelPool#close
which could be concidered as illegal in this case.We use https://github.com/reactor/BlockHound in pair with Reactor in spring as well as localstack in testcontainers in our tests, where this blocking call is popping out.
Describe the issue
We see in test logs this stacktrace:
Steps to Reproduce
It's hard actually to reproduce the issue, as it's visible or affecting test execution not 100% of the times.
However we're doing in tests something really simple like
within the test. Later when the context closes (we defined clients as spring beans), the close method seems to be called.
Current Behavior
BetterSimpleChannelPool#close
blocks the threadYour Environment
Current workaround is to whitelist this in the BlockHound
The text was updated successfully, but these errors were encountered: