-
Notifications
You must be signed in to change notification settings - Fork 882
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
S3 putObject (async) is hanging when using ByteArrayAsyncRequestBody #2576
Comments
Hi @jmassiot, thank you for reaching out, and apologies for the lack of response. We're seeing other reports of the same issue you described, we'll do a deeper investigation on possible causes. This may take a while since it's not easily reproducible. |
…length returned by the publisher. This fixes two potential bugs: 1. A source of "checksum mismatch" exceptions (#953) when the published data length exceeds the content-length. 2. A source of "hung futures" (#2576?) when the published data is shorter than the content-length. This may not be the definitive fix for those two issues.
…length returned by the publisher. This fixes two potential bugs: 1. A source of "checksum mismatch" exceptions (#953) when the published data length exceeds the content-length. 2. A source of "hung futures" (#2576?) when the published data is shorter than the content-length. This may not be the definitive fix for those two issues.
…length returned by the publisher. (#2788) This fixes two potential bugs: 1. A source of "checksum mismatch" exceptions (#953) when the published data length exceeds the content-length. 2. A source of "hung futures" (#2576?) when the published data is shorter than the content-length. This may not be the definitive fix for those two issues.
I think we fixed one cause of this: specifying a contentLength on putObject that is greater than the byte length of the ByteArrayAsyncRequestBody. After tomorrow's release, can you deploy the fix and verify whether you're still seeing the issue? |
@jmassiot the fix was released in SDK version |
|
…7a0ba708b Pull request: release <- staging/47746ac0-519b-4e9b-9beb-b4b7a0ba708b
From times to times, we are facing cases where the S3 async putObject API is hanging.
Describe the bug
We are currently using quite intensively (~ 400 put/s) the S3 async putObject API (with both a FileAsyncRequestBody or a ByteArrayAsyncRequestBody).
And from times to times (~ once a day), we have some calls to putObject that are hanging:
Expected Behavior
Calls to putObject with a ByteArrayAsyncRequestBody should not hang.
Current Behavior
Calls to putObject with a ByteArrayAsyncRequestBody is hanging.
Steps to Reproduce
As mentioned above, it is very difficult to reproduce the issue.
It happens in our case approximatively once a day with a production traffic and several hundreds of puts per seconds.
Possible Solution
When trying to compare FileAsyncRequestBody and ByteArrayAsyncRequestBody, I found the following on which i have a doubt.
FileAsyncRequestBody
around thesubscribe
method, there is this comment:ByteArrayAsyncRequestBody
, we have the following:So, in case of
ByteArrayAsyncRequestBody
, there is not the same synchronization as the one we have inFileAsyncRequestBody
(which means thatonNext
may be called on another thread whereasonSubscribe
is not finished)Furthermore, on
StreamedRequest
withinNettyRequestExecutor
, we have the following:Don't you think that the
subcription
field should be volatile, here ?onError
method that will not display anything asdone
has been set to true in the thread calling onNext)onComplete
method will never be called on the subscriber, no ?Context
We are facing this issue in production.
There are some workarounds like putting timeouts and then re-launching the put.
But it will be good if we can avoid in the 1st place such behavior.
Your Environment
The text was updated successfully, but these errors were encountered: