Comments (8)
Hi @i-volkov thank you for reaching out.
- Was there any change in code or in the environment, besides upgrading the SDK version?
- Which DynamoDB API are you using?
- Do you have the logs with the retry errors that correlates to the increased LeasedConcurrency? They might help in reproducing the issue on our side
from aws-sdk-java-v2.
Hi @i-volkov thank you for reaching out.
- Was there any change in code or in the environment, besides upgrading the SDK version?
- Which DynamoDB API are you using?
- Do you have the logs with the retry errors that correlates to the increased LeasedConcurrency? They might help in reproducing the issue on our side
Thank you for the resposne.
Answering your questions:
- Only SDK version was updated
- GetItem and PutItem
- By errors I mean exceptions caused by the exceeded api attempt timeout. With 50 ms limit for attempt there are more retires than with 150 ms and LeasedConcurrency is growing more slowly. We don't have logs for that, because these exceptions are logged by AWS SDK using DEBUG logging level as I understand
from aws-sdk-java-v2.
@i-volkov I think I 'm able to reproduce, still need to confirm if it's the same problem you are running into.
If I set a low apiCallAtemptTimeout like 20ms, some requests will succeed, but some will fail and will be retried. When using version 2.18.34 (and aws-crt-client 2.18.34-PREVIEW) and calling GetItem in a loop, LeasedConcurrency is 2 at max. Running the same code with version 2.18.35 (and 2.18.35-PREVIEW for aws-crt-client), the LeasedConcurrency jumps to 50.
We still need to investigate the root cause.
from aws-sdk-java-v2.
@debora-ito
Yes, this is pretty much the same behaviour we are observing, the only difference is that in our case it eventually leads to lack of available connections in the pool and all requests start to time out.
With 50 ms limit for attempt there are more retires than with 150 ms and LeasedConcurrency is growing more slowly
The above sentence from my previous post is incorrect, the right way of phrasing is: the more retries we have the faster LeasedConcurrency metric grows. Sorry for the confusion.
from aws-sdk-java-v2.
The issue was occurring because of PR-3603 added in 2.18.35
. Prior to this fix in 2.18.34
, since we did not return when Future.isCompletedExceptionally complted, the connection used to get closed in successResponseHandler.onStream(publisher)
, which is right below it.
However, the latest fix PR-4825 introduced a new ResponseHandlerHelper that releases the connection in these cases. I tried with Version 2.23.2
and no longer saw the issue.
The fix is available in version 2.23.2. I would recommend using the latest version.
from aws-sdk-java-v2.
The issue was occurring because of PR-3603 added in
2.18.35
. Prior to this fix in2.18.34
, since we did not return when Future.isCompletedExceptionally complted, the connection used to get closed insuccessResponseHandler.onStream(publisher)
, which is right below it. However, the latest fix PR-4825 introduced a new ResponseHandlerHelper that releases the connection in these cases. I tried with Version2.23.2
and no longer saw the issue.The fix is available in version 2.23.2. I would recommend using the latest version.
Thank you! We did a quick test using version 2.23.2 and the issue is gone
from aws-sdk-java-v2.
@i-volkov thank you for confirming the fix is working. Closing this.
from aws-sdk-java-v2.
⚠️ COMMENT VISIBILITY WARNING⚠️
Comments on closed issues are hard for our team to see.
If you need more assistance, please open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.
from aws-sdk-java-v2.
Related Issues (20)
- MediaLive waiter does not wait long enough. No configuration HOT 4
- endpoints-spi is missing in bom HOT 2
- MediaLive waitUntilInputDeleted does not work. HOT 10
- ClassNotFoundException after Spring Boot Native Image compilation for s3/internal/ApplyUserAgentInterceptor.java HOT 4
- CognitoIdentityProviderClient.adminInitiateAuth is consistently failing. What is missing? HOT 6
- Add GetSpotInstancesAction to retrieve action from spot instances like on demand instances HOT 4
- AsyncRequestBody: ability to set content-type HOT 5
- AWS Inspector client does not build the request correctly HOT 1
- Streaming of S3 large files using S3AsyncClient and AsyncResponseTransformer.toPublisher(), CRT vs netty backpressure HOT 12
- [Feature] Synchronized version of AwsCrtV4aSigner
- LambdaAsyncClient leads to OutOfMemoryErrors under a high load
- Support Java-based S3 multipart client as an altertivate to AWS CRT-based S3 client HOT 4
- Unable to connect to local Minio server when a proxy configuration is specified, even when the Minio server host is set in the http.nonProxyHosts.
- MediaLive SDK Archive Output Group HOT 2
- Uploading files to S3 bucket is inconsistent HOT 5
- PUT requests do not support setReadLimit option HOT 3
- Inconsistent methods for UpdateSecurityGroupRuleDescriptionsIngressRequest.Builder and AuthorizeSecurityGroupIngressRequest.Builder HOT 4
- Cognito: support for partial UpdateUserPoolClient calls HOT 1
- finalizeMultipartUpload is throwing 404 error HOT 3
- SDK Clients are `Closeable` and documented as thread safe but don't provide an `isClosed()` method HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aws-sdk-java-v2.