Closed
Conversation
# AWS Release Notes From 1.10.69 (see elastic#17784), here are the most important updates: ## Minor 1.10 releases: * Amazon S3 Added support for a new configuration named BucketAccelerateConfiguration which supports faster uploads/downloads to S3 buckets. * Adding several missing throttling error codes for API Gateway and S3. * Amazon S3 Introducing a new version of the ListObjects (ListObjectsV2) API that allows listing objects with a large number of delete markers. ## 1.11: AWS SDK for Java: * Improved URL encoding for REST clients. * Dropped usage of Json.org library in favor of Jackson. * Updated retry policies to include jitter during backoffs. * Generate output POJOs for all operations. * Renamed the aws-java-sdk-flow-build-tools-{sdkversion}.jar to aws-swf-build-tools-1.0.jar. The jar is also available in Maven. AWS SDK for Java - Amazon S3: * Added support to return the part count of an object in object metadata. You can also download a part by setting part number in GetObjectRequest. * TransferManager supports parallel downloads for multipart objects. * Default to Signature Version 4 signing process in all regions. Apache HttpClient upgraded to 4.5.2 # Jackson update Note that [Jackson has been updated at some point](https://github.com/aws/aws-sdk-java/blob/master/pom.xml#L115) but as we don't use dependency management anymore it has never been updated and we did not notice. So I updated: * jackson-databind to 2.6.6. * jackson-annotations to 2.6.0. That being said, I'm unsure if we should better use `${versions.jackson}` instead. # Functional changes For `repository-s3` plugin, this new version of the AWS SDK now sets Throttle Retries (overridable by `use_throttle_retries`) to `true` by default instead of `false` previously. # Security manager issues Tests are failing on `repository-s3` plugin with: ``` [2016-07-26 09:36:40,350][WARN ][repositories ] [AUqzQAb] failed to create repository [s3][test_repo_s3_1] java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessDeclaredMembers") at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) at java.security.AccessController.checkPermission(AccessController.java:884) at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) at java.lang.Class.checkMemberAccess(Class.java:2348) at java.lang.Class.getDeclaredConstructors(Class.java:2019) at com.fasterxml.jackson.databind.introspect.AnnotatedClass.resolveCreators(AnnotatedClass.java:338) at com.fasterxml.jackson.databind.introspect.AnnotatedClass.getStaticMethods(AnnotatedClass.java:245) at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.getFactoryMethods(BasicBeanDescription.java:461) at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._addDeserializerFactoryMethods(BasicDeserializerFactory.java:670) at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._constructDefaultValueInstantiator(BasicDeserializerFactory.java:321) at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findValueInstantiator(BasicDeserializerFactory.java:254) at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.createCollectionDeserializer(BasicDeserializerFactory.java:1027) at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:394) at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:352) at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264) at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244) at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142) at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:428) at com.fasterxml.jackson.databind.deser.std.StdDeserializer.findDeserializer(StdDeserializer.java:947) at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:439) at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:296) at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244) at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142) at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:461) at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:3838) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3732) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2796) at com.amazonaws.partitions.PartitionsLoader.loadPartitionFromStream(PartitionsLoader.java:92) at com.amazonaws.partitions.PartitionsLoader.build(PartitionsLoader.java:84) at com.amazonaws.regions.RegionMetadataFactory.create(RegionMetadataFactory.java:30) at com.amazonaws.regions.RegionUtils.initialize(RegionUtils.java:66) at com.amazonaws.regions.RegionUtils.getRegionMetadata(RegionUtils.java:54) at com.amazonaws.regions.RegionUtils.getRegion(RegionUtils.java:107) at com.amazonaws.services.s3.AmazonS3Client.createSigner(AmazonS3Client.java:3288) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3984) at com.amazonaws.services.s3.AmazonS3Client.headBucket(AmazonS3Client.java:1218) at com.amazonaws.services.s3.AmazonS3Client.doesBucketExist(AmazonS3Client.java:1175) at org.elasticsearch.cloud.aws.blobstore.S3BlobStore.<init>(S3BlobStore.java:88) at org.elasticsearch.repositories.s3.S3Repository.<init>(S3Repository.java:309) at org.elasticsearch.plugin.repository.s3.S3RepositoryPlugin.lambda$getRepositories$6(S3RepositoryPlugin.java:73) at org.elasticsearch.repositories.RepositoriesService.createRepository(RepositoriesService.java:381) at org.elasticsearch.repositories.RepositoriesService.registerRepository(RepositoriesService.java:354) at org.elasticsearch.repositories.RepositoriesService.access$100(RepositoriesService.java:54) at org.elasticsearch.repositories.RepositoriesService$1.execute(RepositoriesService.java:107) at org.elasticsearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:45) at org.elasticsearch.cluster.service.ClusterService.runTasksForExecutor(ClusterService.java:553) at org.elasticsearch.cluster.service.ClusterService$UpdateTask.run(ClusterService.java:857) at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:450) at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:237) at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:200) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) ``` Related to elastic#18910.
md5 hash was being generated twice, once in aws sdk code, once in DefaultS3OutputStream. (cherry picked from commit elastic@9fd0d62)
Contributor
Author
|
After talking with @tlrx, we think that we should not update the AWS SDK unless we have a major issue (which is not the case here) until we have real integration tests running. Let's mark this one as |
Note that this issue might appear anywhere else. We need to run real integration tests to make sure it does not appear on other AWS SDK method calls.
Member
|
@dadoonet is this still worth keeping open with the other changes we've made in the meantime? (we've already upgrading Jackson separately) If we are not going to upgrade until we have a major issue, maybe we can close this? |
Contributor
Author
|
Works for me. I'll just keep my branch somewhere as there have been some efforts already. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WIP: DO NOT MERGE IT (tests are failing see description)
AWS Release Notes
From 1.10.69 (see #17784), here are the most important updates:
Minor 1.10 releases:
1.11:
AWS SDK for Java:
AWS SDK for Java - Amazon S3:
Apache HttpClient upgraded to 4.5.2
Jackson update
Note that Jackson has been updated at some point but as we don't use dependency management anymore it has never been updated and we did not notice.
So I updated:
That being said, I'm unsure if we should better use
${versions.jackson}instead.Functional changes
For
repository-s3plugin, this new version of the AWS SDK now sets Throttle Retries (overridable byuse_throttle_retries) totrueby default instead offalsepreviously.Security manager issues
Tests are failing on
repository-s3plugin with:Related to #18910.