Closed caiiiycuk closed 4 years ago
I see that problem came from fatjar, I mean maybe some class is double initialized or something else. But, I don't really understand why. I can avoid this problem from removing fatjar tasks, from intermediate projects. But anyway I can't explain and understand what happening, so I am very scared to use it in production environment.
Do you still encounter this problem with the latest release of the SDK, 2.3.0? We've made a few fixes to the checksum calculations.
Hi. No, test did not pass with this error:
com.companyname.s3.S3Test > readWriteTest FAILED
software.amazon.awssdk.core.exception.SdkClientException: Unable to unmarshall response (Data read has a different checksum than expected. Was 0xD41D8CD98F00B204E9800998ECF8427E, but expected 0xE27E92F61FFD911E2036BC12D46CA2E9). Response Code: 200, Response Text: OK
at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)
at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.handleSuccessResponse(HandleResponseStage.java:100)
at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.handleResponse(HandleResponseStage.java:70)
at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:58)
at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:41)
at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:205)
at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:63)
at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:36)
at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:77)
at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:39)
at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage$RetryExecutor.doExecute(RetryableStage.java:115)
at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage$RetryExecutor.execute(RetryableStage.java:88)
at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:64)
at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:44)
at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:205)
at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:51)
at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:33)
at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.executeWithTimer(ApiCallTimeoutTrackingStage.java:79)
at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:60)
at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:42)
at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:205)
at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:205)
at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:37)
at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:26)
at software.amazon.awssdk.core.internal.http.AmazonSyncHttpClient$RequestExecutionBuilderImpl.execute(AmazonSyncHttpClient.java:240)
at software.amazon.awssdk.core.client.handler.BaseSyncClientHandler.invoke(BaseSyncClientHandler.java:96)
at software.amazon.awssdk.core.client.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:120)
at software.amazon.awssdk.core.client.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:73)
at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:44)
at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55)
at software.amazon.awssdk.services.s3.DefaultS3Client.putObject(DefaultS3Client.java:3051)
at com.companyname.s3.S3Test.readWriteTest(S3Test.java:28)
Caused by:
software.amazon.awssdk.core.exception.SdkClientException: Data read has a different checksum than expected. Was 0xD41D8CD98F00B204E9800998ECF8427E, but expected 0xE27E92F61FFD911E2036BC12D46CA2E9
at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97)
at software.amazon.awssdk.core.exception.SdkClientException.create(SdkClientException.java:39)
at software.amazon.awssdk.services.s3.internal.handlers.SyncChecksumValidationInterceptor.afterUnmarshalling(SyncChecksumValidationInterceptor.java:114)
at software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain.lambda$afterUnmarshalling$9(ExecutionInterceptorChain.java:152)
at software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain.reverseForEach(ExecutionInterceptorChain.java:210)
at software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain.afterUnmarshalling(ExecutionInterceptorChain.java:152)
at software.amazon.awssdk.core.client.handler.BaseClientHandler.runAfterUnmarshallingInterceptors(BaseClientHandler.java:120)
at software.amazon.awssdk.core.client.handler.BaseClientHandler.lambda$interceptorCalling$2(BaseClientHandler.java:133)
at software.amazon.awssdk.core.client.handler.AttachHttpMetadataResponseHandler.handle(AttachHttpMetadataResponseHandler.java:40)
at software.amazon.awssdk.core.client.handler.AttachHttpMetadataResponseHandler.handle(AttachHttpMetadataResponseHandler.java:28)
at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.handleSuccessResponse(HandleResponseStage.java:89)
... 30 more
I have a similar issue, which is caused by the file s3-2.3.8.jar!/software/amazon/awssdk/services/s3/execution.interceptors
to be in the classpath twice. I was able to see this by putting a breakpoint in ClasspathInterceptorChainFactory#createExecutionInterceptorFromResource
This caused all interceptors to be loaded and applied twice, corrupting the checksum.
Double check your classpath
The solution, for me, was to exclude the s3 library from the class path of the integration test project as it's already included in core.jar
compile (project(':core')) {
exclude module: 's3'
}
Hi @caiiiycuk , Did @kgncan answer work for you? Are you still facing this issue?
@KaibaLopez works fine for me with 2.10.38
Good! In this case I'll resolve this. Feel free to reopen if you have any further questions.
Hi guys! I've found very strange behaviour when trying to build my project. I have a test case. s3-test.zip You need to have
test-bucket
inUS_EAST_1
, then run:My idea is to create multi module project in gradle. Each subproject should be packed into bundle.jar and then pushed to aws stack (lambda). In testcase project I have this structure:
As I said, I want to have fat jar as a result, so I use jar task to achieve it:
If you comment this part, test will be passed. Also I tried shadow jar plugin:
Results is same, test did not pass. If I comment both of them test will be passed. It's seems very strange, because there is no any conflicting dependencies in build. So I dont' understand.
Expected Behavior
Test should pass.
Current Behavior
For ApacheHttpClient:
For UrlConnectionHttpClient: It's stuck forever
**For NettyNioAsyncHttpClient:*** With it test is passed, but in original project (that have more modules), error is:
Steps to Reproduce (for bugs)
IMPORTANT: in ide test will pass, only with ./gradlew it's failing. I think is because ide skips this fat jar stuff.
Your Environment