Browse Source

Upgrade Azure SDK and Jackson (#72833) (#72995)

This commit upgrades the Azure SDK to 12.11.0 and Jackson to 2.12.2. The
Jackson upgrade must happen at the same time due to Azure depending on
this new version of Jackson.

closes #66555
closes #67214

Co-authored-by: Francisco Fernández Castaño <francisco.fernandez.castano@gmail.com>
Ryan Ernst 4 years ago
parent
commit
6c4c4a0ecb
89 changed files with 125 additions and 133 deletions
  1. 2 2
      buildSrc/version.properties
  2. 0 1
      client/sniffer/licenses/jackson-core-2.10.4.jar.sha1
  3. 1 0
      client/sniffer/licenses/jackson-core-2.12.2.jar.sha1
  4. 0 1
      libs/x-content/licenses/jackson-core-2.10.4.jar.sha1
  5. 1 0
      libs/x-content/licenses/jackson-core-2.12.2.jar.sha1
  6. 0 1
      libs/x-content/licenses/jackson-dataformat-cbor-2.10.4.jar.sha1
  7. 1 0
      libs/x-content/licenses/jackson-dataformat-cbor-2.12.2.jar.sha1
  8. 0 1
      libs/x-content/licenses/jackson-dataformat-smile-2.10.4.jar.sha1
  9. 1 0
      libs/x-content/licenses/jackson-dataformat-smile-2.12.2.jar.sha1
  10. 0 1
      libs/x-content/licenses/jackson-dataformat-yaml-2.10.4.jar.sha1
  11. 1 0
      libs/x-content/licenses/jackson-dataformat-yaml-2.12.2.jar.sha1
  12. 0 1
      libs/x-content/licenses/snakeyaml-1.26.jar.sha1
  13. 1 0
      libs/x-content/licenses/snakeyaml-1.27.jar.sha1
  14. 0 1
      modules/ingest-geoip/licenses/jackson-annotations-2.10.4.jar.sha1
  15. 1 0
      modules/ingest-geoip/licenses/jackson-annotations-2.12.2.jar.sha1
  16. 0 1
      modules/ingest-geoip/licenses/jackson-databind-2.10.4.jar.sha1
  17. 1 0
      modules/ingest-geoip/licenses/jackson-databind-2.12.2.jar.sha1
  18. 0 1
      plugins/discovery-ec2/licenses/jackson-annotations-2.10.4.jar.sha1
  19. 1 0
      plugins/discovery-ec2/licenses/jackson-annotations-2.12.2.jar.sha1
  20. 0 1
      plugins/discovery-ec2/licenses/jackson-databind-2.10.4.jar.sha1
  21. 1 0
      plugins/discovery-ec2/licenses/jackson-databind-2.12.2.jar.sha1
  22. 0 47
      plugins/repository-azure/azure-storage-blob/build.gradle
  23. 40 32
      plugins/repository-azure/build.gradle
  24. 0 1
      plugins/repository-azure/licenses/azure-core-1.10.0.jar.sha1
  25. 1 0
      plugins/repository-azure/licenses/azure-core-1.16.0.jar.sha1
  26. 0 1
      plugins/repository-azure/licenses/azure-core-http-netty-1.6.3.jar.sha1
  27. 1 0
      plugins/repository-azure/licenses/azure-core-http-netty-1.9.1.jar.sha1
  28. 1 0
      plugins/repository-azure/licenses/azure-storage-blob-12.11.1.jar.sha1
  29. 1 0
      plugins/repository-azure/licenses/azure-storage-common-12.11.1.jar.sha1
  30. 0 1
      plugins/repository-azure/licenses/azure-storage-common-12.9.0.jar.sha1
  31. 1 0
      plugins/repository-azure/licenses/azure-storage-internal-avro-12.0.4.jar.sha1
  32. 0 1
      plugins/repository-azure/licenses/jackson-annotations-2.10.4.jar.sha1
  33. 1 0
      plugins/repository-azure/licenses/jackson-annotations-2.12.2.jar.sha1
  34. 0 1
      plugins/repository-azure/licenses/jackson-databind-2.10.4.jar.sha1
  35. 1 0
      plugins/repository-azure/licenses/jackson-databind-2.12.2.jar.sha1
  36. 0 1
      plugins/repository-azure/licenses/jackson-dataformat-xml-2.10.4.jar.sha1
  37. 1 0
      plugins/repository-azure/licenses/jackson-dataformat-xml-2.12.2.jar.sha1
  38. 0 1
      plugins/repository-azure/licenses/jackson-datatype-jsr310-2.10.4.jar.sha1
  39. 1 0
      plugins/repository-azure/licenses/jackson-datatype-jsr310-2.12.2.jar.sha1
  40. 0 1
      plugins/repository-azure/licenses/jackson-module-jaxb-annotations-2.10.4.jar.sha1
  41. 1 0
      plugins/repository-azure/licenses/jackson-module-jaxb-annotations-2.12.2.jar.sha1
  42. 0 1
      plugins/repository-azure/licenses/netty-buffer-4.1.49.Final.jar.sha1
  43. 1 0
      plugins/repository-azure/licenses/netty-buffer-4.1.63.Final.jar.sha1
  44. 0 1
      plugins/repository-azure/licenses/netty-codec-4.1.49.Final.jar.sha1
  45. 1 0
      plugins/repository-azure/licenses/netty-codec-4.1.63.Final.jar.sha1
  46. 1 0
      plugins/repository-azure/licenses/netty-codec-dns-4.1.63.Final.jar.sha1
  47. 0 1
      plugins/repository-azure/licenses/netty-codec-http-4.1.49.Final.jar.sha1
  48. 1 0
      plugins/repository-azure/licenses/netty-codec-http-4.1.63.Final.jar.sha1
  49. 0 1
      plugins/repository-azure/licenses/netty-codec-http2-4.1.49.Final.jar.sha1
  50. 1 0
      plugins/repository-azure/licenses/netty-codec-http2-4.1.63.Final.jar.sha1
  51. 0 1
      plugins/repository-azure/licenses/netty-codec-socks-4.1.49.Final.jar.sha1
  52. 1 0
      plugins/repository-azure/licenses/netty-codec-socks-4.1.63.Final.jar.sha1
  53. 0 1
      plugins/repository-azure/licenses/netty-common-4.1.49.Final.jar.sha1
  54. 1 0
      plugins/repository-azure/licenses/netty-common-4.1.63.Final.jar.sha1
  55. 0 1
      plugins/repository-azure/licenses/netty-handler-4.1.49.Final.jar.sha1
  56. 1 0
      plugins/repository-azure/licenses/netty-handler-4.1.63.Final.jar.sha1
  57. 0 1
      plugins/repository-azure/licenses/netty-handler-proxy-4.1.49.Final.jar.sha1
  58. 1 0
      plugins/repository-azure/licenses/netty-handler-proxy-4.1.63.Final.jar.sha1
  59. 0 1
      plugins/repository-azure/licenses/netty-resolver-4.1.49.Final.jar.sha1
  60. 1 0
      plugins/repository-azure/licenses/netty-resolver-4.1.63.Final.jar.sha1
  61. 1 0
      plugins/repository-azure/licenses/netty-resolver-dns-4.1.63.Final.jar.sha1
  62. 0 1
      plugins/repository-azure/licenses/netty-transport-4.1.49.Final.jar.sha1
  63. 1 0
      plugins/repository-azure/licenses/netty-transport-4.1.63.Final.jar.sha1
  64. 1 0
      plugins/repository-azure/licenses/netty-transport-native-unix-common-4.1.63.Final.jar.sha1
  65. 0 1
      plugins/repository-azure/licenses/reactor-core-3.3.10.RELEASE.jar.sha1
  66. 1 0
      plugins/repository-azure/licenses/reactor-core-3.4.5.jar.sha1
  67. 0 1
      plugins/repository-azure/licenses/reactor-netty-0.9.12.RELEASE.jar.sha1
  68. 1 0
      plugins/repository-azure/licenses/reactor-netty-1.0.6.jar.sha1
  69. 1 0
      plugins/repository-azure/licenses/reactor-netty-core-1.0.6.jar.sha1
  70. 1 0
      plugins/repository-azure/licenses/reactor-netty-http-1.0.6.jar.sha1
  71. 0 1
      plugins/repository-azure/licenses/woodstox-core-6.0.2.jar.sha1
  72. 1 0
      plugins/repository-azure/licenses/woodstox-core-6.2.4.jar.sha1
  73. 20 14
      plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureClientProvider.java
  74. 13 0
      plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java
  75. 5 0
      plugins/repository-azure/src/main/plugin-metadata/plugin-security.policy
  76. 0 1
      plugins/repository-s3/licenses/jackson-annotations-2.10.4.jar.sha1
  77. 1 0
      plugins/repository-s3/licenses/jackson-annotations-2.12.2.jar.sha1
  78. 0 1
      plugins/repository-s3/licenses/jackson-databind-2.10.4.jar.sha1
  79. 1 0
      plugins/repository-s3/licenses/jackson-databind-2.12.2.jar.sha1
  80. 0 1
      x-pack/plugin/sql/jdbc/licenses/jackson-core-2.10.4.jar.sha1
  81. 1 0
      x-pack/plugin/sql/jdbc/licenses/jackson-core-2.12.2.jar.sha1
  82. 0 1
      x-pack/plugin/sql/jdbc/licenses/jackson-dataformat-cbor-2.10.4.jar.sha1
  83. 1 0
      x-pack/plugin/sql/jdbc/licenses/jackson-dataformat-cbor-2.12.2.jar.sha1
  84. 0 1
      x-pack/plugin/sql/sql-action/licenses/jackson-core-2.10.4.jar.sha1
  85. 1 0
      x-pack/plugin/sql/sql-action/licenses/jackson-core-2.12.2.jar.sha1
  86. 0 1
      x-pack/plugin/sql/sql-client/licenses/jackson-core-2.10.4.jar.sha1
  87. 1 0
      x-pack/plugin/sql/sql-client/licenses/jackson-core-2.12.2.jar.sha1
  88. 0 1
      x-pack/plugin/sql/sql-proto/licenses/jackson-core-2.10.4.jar.sha1
  89. 1 0
      x-pack/plugin/sql/sql-proto/licenses/jackson-core-2.12.2.jar.sha1

+ 2 - 2
buildSrc/version.properties

@@ -9,8 +9,8 @@ checkstyle = 8.39
 # optional dependencies
 spatial4j         = 0.7
 jts               = 1.15.0
-jackson           = 2.10.4
-snakeyaml         = 1.26
+jackson           = 2.12.2
+snakeyaml         = 1.27
 icu4j             = 62.1
 supercsv          = 2.4.0
 # when updating log4j, please update also docs/java-api/index.asciidoc

+ 0 - 1
client/sniffer/licenses/jackson-core-2.10.4.jar.sha1

@@ -1 +0,0 @@
-8796585e716440d6dd5128b30359932a9eb74d0d

+ 1 - 0
client/sniffer/licenses/jackson-core-2.12.2.jar.sha1

@@ -0,0 +1 @@
+8df50138521d05561a308ec2799cc8dda20c06df

+ 0 - 1
libs/x-content/licenses/jackson-core-2.10.4.jar.sha1

@@ -1 +0,0 @@
-8796585e716440d6dd5128b30359932a9eb74d0d

+ 1 - 0
libs/x-content/licenses/jackson-core-2.12.2.jar.sha1

@@ -0,0 +1 @@
+8df50138521d05561a308ec2799cc8dda20c06df

+ 0 - 1
libs/x-content/licenses/jackson-dataformat-cbor-2.10.4.jar.sha1

@@ -1 +0,0 @@
-c854bb2d46138198cb5d4aae86ef6c04b8bc1e70

+ 1 - 0
libs/x-content/licenses/jackson-dataformat-cbor-2.12.2.jar.sha1

@@ -0,0 +1 @@
+71866a16d9678d8d7718baea0a28c7d0e1a67360

+ 0 - 1
libs/x-content/licenses/jackson-dataformat-smile-2.10.4.jar.sha1

@@ -1 +0,0 @@
-c872c2e224cfdcc5481037d477f5890f05c001b4

+ 1 - 0
libs/x-content/licenses/jackson-dataformat-smile-2.12.2.jar.sha1

@@ -0,0 +1 @@
+110be3a2ac0acf51e68967669db47ca9a507e057

+ 0 - 1
libs/x-content/licenses/jackson-dataformat-yaml-2.10.4.jar.sha1

@@ -1 +0,0 @@
-8a7f3c6b640bd89214807af6d8160b4b3b16af93

+ 1 - 0
libs/x-content/licenses/jackson-dataformat-yaml-2.12.2.jar.sha1

@@ -0,0 +1 @@
+8c549fb29f390f6fd0c20cf0a1d83f7e38dc7ffb

+ 0 - 1
libs/x-content/licenses/snakeyaml-1.26.jar.sha1

@@ -1 +0,0 @@
-a78a8747147d2c5807683e76ec2b633e95c14fe9

+ 1 - 0
libs/x-content/licenses/snakeyaml-1.27.jar.sha1

@@ -0,0 +1 @@
+359d62567480b07a679dc643f82fc926b100eed5

+ 0 - 1
modules/ingest-geoip/licenses/jackson-annotations-2.10.4.jar.sha1

@@ -1 +0,0 @@
-6ae6028aff033f194c9710ad87c224ccaadeed6c

+ 1 - 0
modules/ingest-geoip/licenses/jackson-annotations-2.12.2.jar.sha1

@@ -0,0 +1 @@
+0a770cc4c0a1fb0bfd8a150a6a0004e42bc99fca

+ 0 - 1
modules/ingest-geoip/licenses/jackson-databind-2.10.4.jar.sha1

@@ -1 +0,0 @@
-76e9152e93d4cf052f93a64596f633ba5b1c8ed9

+ 1 - 0
modules/ingest-geoip/licenses/jackson-databind-2.12.2.jar.sha1

@@ -0,0 +1 @@
+5f9d79e09ebf5d54a46e9f4543924cf7ae7654e0

+ 0 - 1
plugins/discovery-ec2/licenses/jackson-annotations-2.10.4.jar.sha1

@@ -1 +0,0 @@
-6ae6028aff033f194c9710ad87c224ccaadeed6c

+ 1 - 0
plugins/discovery-ec2/licenses/jackson-annotations-2.12.2.jar.sha1

@@ -0,0 +1 @@
+0a770cc4c0a1fb0bfd8a150a6a0004e42bc99fca

+ 0 - 1
plugins/discovery-ec2/licenses/jackson-databind-2.10.4.jar.sha1

@@ -1 +0,0 @@
-76e9152e93d4cf052f93a64596f633ba5b1c8ed9

+ 1 - 0
plugins/discovery-ec2/licenses/jackson-databind-2.12.2.jar.sha1

@@ -0,0 +1 @@
+5f9d79e09ebf5d54a46e9f4543924cf7ae7654e0

+ 0 - 47
plugins/repository-azure/azure-storage-blob/build.gradle

@@ -1,47 +0,0 @@
-import org.elasticsearch.gradle.internal.JavaClassPublicifier;
-
-apply plugin: 'elasticsearch.java'
-apply plugin: 'com.github.johnrengelman.shadow'
-
-configurations {
-  originalJar {
-    transitive = false
-  }
-}
-
-dependencies {
-  originalJar "com.azure:azure-storage-blob:${project.parent.versions.azure}"
-  implementation "com.azure:azure-storage-blob:${project.parent.versions.azure}"
-}
-
-// We have to rewrite the service classes to make them public to avoid
-// granting the permission "java.lang.reflect.ReflectPermission" "newProxyInPackage"
-// to this plugin.
-//
-// There are plans to make those public in the azure sdk side, but in the meanwhile
-// we just do this workaround
-// https://github.com/Azure/azure-sdk-for-java/issues/12829#issuecomment-736755543
-List<String> classesToRewrite = ['com/azure/storage/blob/implementation/AppendBlobsImpl$AppendBlobsService.class',
-                                 'com/azure/storage/blob/implementation/BlobsImpl$BlobsService.class',
-                                 'com/azure/storage/blob/implementation/BlockBlobsImpl$BlockBlobsService.class',
-                                 'com/azure/storage/blob/implementation/ContainersImpl$ContainersService.class',
-                                 'com/azure/storage/blob/implementation/DirectorysImpl$DirectorysService.class',
-                                 'com/azure/storage/blob/implementation/PageBlobsImpl$PageBlobsService.class',
-                                 'com/azure/storage/blob/implementation/ServicesImpl$ServicesService.class']
-
-tasks.register('extractClientClasses', Copy).configure {
-  from({ zipTree(configurations.originalJar.singleFile) }) {
-    include "com/azure/storage/blob/implementation/**"
-  }
-  into project.file('build/original')
-}
-
-def modifiedOutput = project.layout.buildDirectory.dir('modified')
-def makePublic = tasks.register('makeClientClassesPublic', JavaClassPublicifier) {
-  dependsOn 'extractClientClasses'
-  classFiles = classesToRewrite
-  inputDir = project.layout.buildDirectory.dir('original')
-  outputDir = modifiedOutput
-}
-
-sourceSets.main.output.dir(modifiedOutput, builtBy: makePublic)

+ 40 - 32
plugins/repository-azure/build.gradle

@@ -22,38 +22,35 @@ esplugin {
 }
 
 versions << [
-  'azure': '12.9.0',
-  'azureCore': '1.10.0',
-  'azureCoreHttpNetty': '1.6.3',
+  'azure': '12.11.1',
+  'azureCore': '1.16.0',
+  'azureCoreHttpNetty': '1.9.1',
+  'azureAvro': '12.0.4',
 
   'jakartaActivation': '1.2.1',
   'jakartaXMLBind': '2.3.2',
   'stax2API': '4.2',
-  'woodstox': '6.0.2',
+  'woodstox': '6.2.4',
 
-  'reactorNetty': '0.9.12.RELEASE',
-  'reactorCore': '3.3.10.RELEASE',
+  'azureNetty': '4.1.63.Final',
+  'reactorNetty': '1.0.6',
+  'reactorCore': '3.4.5',
   'reactiveStreams': '1.0.3',
 ]
 
 dependencies {
-  api project(path: 'azure-storage-blob', configuration: 'shadow')
-  if (isEclipse) {
-    /*
-     * Eclipse can't pick up the shadow dependency so we point it at *something*
-     * so it can compile things.
-     */
-    api project(path: 'azure-storage-blob')
-  }
   api "com.azure:azure-storage-common:${versions.azure}"
+  api "com.azure:azure-storage-blob:${versions.azure}"
   api "com.azure:azure-core-http-netty:${versions.azureCoreHttpNetty}"
   api "com.azure:azure-core:${versions.azureCore}"
+  api "com.azure:azure-storage-internal-avro:${versions.azureAvro}"
 
   // jackson
   api "com.fasterxml.jackson.core:jackson-core:${versions.jackson}"
   api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson}"
   api "com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}"
   api "com.fasterxml.jackson.core:jackson-databind:${versions.jackson}"
+  api "com.fasterxml.jackson:jackson-bom:${versions.jackson}"
 
   // jackson xml
   api "com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${versions.jackson}"
@@ -65,19 +62,24 @@ dependencies {
   api "com.fasterxml.woodstox:woodstox-core:${versions.woodstox}"
 
   // netty
-  api "io.netty:netty-buffer:${versions.netty}"
-  api "io.netty:netty-codec-http:${versions.netty}"
-  api "io.netty:netty-codec-http2:${versions.netty}"
-  api "io.netty:netty-codec-socks:${versions.netty}"
-  api "io.netty:netty-codec:${versions.netty}"
-  api "io.netty:netty-common:${versions.netty}"
-  api "io.netty:netty-handler-proxy:${versions.netty}"
-  api "io.netty:netty-handler:${versions.netty}"
-  api "io.netty:netty-resolver:${versions.netty}"
-  api "io.netty:netty-transport:${versions.netty}"
+  api "io.netty:netty-buffer:${versions.azureNetty}"
+  api "io.netty:netty-codec:${versions.azureNetty}"
+  api "io.netty:netty-codec-dns:${versions.azureNetty}"
+  api "io.netty:netty-codec-http:${versions.azureNetty}"
+  api "io.netty:netty-codec-http2:${versions.azureNetty}"
+  api "io.netty:netty-codec-socks:${versions.azureNetty}"
+  api "io.netty:netty-common:${versions.azureNetty}"
+  api "io.netty:netty-handler:${versions.azureNetty}"
+  api "io.netty:netty-handler-proxy:${versions.azureNetty}"
+  api "io.netty:netty-resolver:${versions.azureNetty}"
+  api "io.netty:netty-resolver-dns:${versions.azureNetty}"
+  api "io.netty:netty-transport:${versions.azureNetty}"
+  api "io.netty:netty-transport-native-unix-common:${versions.azureNetty}"
 
   // reactor
   api "io.projectreactor.netty:reactor-netty:${versions.reactorNetty}"
+  api "io.projectreactor.netty:reactor-netty-core:${versions.reactorNetty}"
+  api "io.projectreactor.netty:reactor-netty-http:${versions.reactorNetty}"
   api "io.projectreactor:reactor-core:${versions.reactorCore}"
   api "org.reactivestreams:reactive-streams:${versions.reactiveStreams}"
 
@@ -107,6 +109,7 @@ tasks.named("dependencyLicenses").configure {
   mapping from: /netty-.*/, to: 'netty'
   mapping from: /jaxb-.*/, to: 'jaxb'
   mapping from: /stax-.*/, to: 'stax'
+  mapping from: /reactor-netty-.*/, to: 'reactor-netty'
   mapping from: /reactive-streams.*/, to: 'reactive-streams'
 }
 
@@ -240,6 +243,8 @@ tasks.named("thirdPartyAudit").configure {
     'io.netty.internal.tcnative.CertificateVerifier',
     'io.netty.internal.tcnative.SessionTicketKey',
     'io.netty.internal.tcnative.SniHostNameMatcher',
+    'io.netty.internal.tcnative.SSLSession',
+    'io.netty.internal.tcnative.SSLSessionCache',
 
     // from io.netty.util.internal.Hidden (netty-common optional dependency)
     'reactor.blockhound.BlockHound$Builder',
@@ -248,14 +253,23 @@ tasks.named("thirdPartyAudit").configure {
     // it uses NIO
     'io.netty.channel.kqueue.KQueue',
     'io.netty.channel.kqueue.KQueueDatagramChannel',
+    'io.netty.channel.kqueue.KQueueDomainSocketChannel',
     'io.netty.channel.kqueue.KQueueEventLoopGroup',
+    'io.netty.channel.kqueue.KQueueServerDomainSocketChannel',
     'io.netty.channel.kqueue.KQueueServerSocketChannel',
     'io.netty.channel.kqueue.KQueueSocketChannel',
     'io.netty.channel.epoll.Epoll',
     'io.netty.channel.epoll.EpollDatagramChannel',
+    'io.netty.channel.epoll.EpollDomainSocketChannel',
     'io.netty.channel.epoll.EpollEventLoopGroup',
+    'io.netty.channel.epoll.EpollServerDomainSocketChannel',
     'io.netty.channel.epoll.EpollServerSocketChannel',
     'io.netty.channel.epoll.EpollSocketChannel',
+    'io.netty.incubator.channel.uring.IOUring',
+    'io.netty.incubator.channel.uring.IOUringDatagramChannel',
+    'io.netty.incubator.channel.uring.IOUringEventLoopGroup',
+    'io.netty.incubator.channel.uring.IOUringServerSocketChannel',
+    'io.netty.incubator.channel.uring.IOUringSocketChannel',
 
     // from reactor.netty.http.server.HttpServer (reactor-netty)
     'io.netty.handler.codec.haproxy.HAProxyMessage',
@@ -265,13 +279,11 @@ tasks.named("thirdPartyAudit").configure {
     'org.osgi.framework.BundleActivator',
     'org.osgi.framework.BundleContext',
 
-    // from com.ctc.wstx.shaded.msv_core.driver.textui.Driver (woodstox-core)
-    'com.sun.org.apache.xml.internal.resolver.Catalog',
-    'com.sun.org.apache.xml.internal.resolver.tools.CatalogResolver',
-
     'org.slf4j.impl.StaticLoggerBinder',
     'org.slf4j.impl.StaticMDCBinder',
     'org.slf4j.impl.StaticMarkerBinder',
+
+    'com.ctc.wstx.shaded.msv_core.driver.textui.Driver',
   )
 
   ignoreViolations(
@@ -297,11 +309,7 @@ tasks.named("thirdPartyAudit").configure {
     'javax.activation.MailcapCommandMap',
     'javax.activation.MimetypesFileTypeMap',
 
-    'reactor.core.publisher.MultiProducerRingBuffer',
-    'reactor.core.publisher.RingBufferFields',
     'reactor.core.publisher.Traces$SharedSecretsCallSiteSupplierFactory$TracingException',
-    'reactor.core.publisher.UnsafeSequence',
-    'reactor.core.publisher.UnsafeSupport'
   )
 }
 boolean useFixture = false

+ 0 - 1
plugins/repository-azure/licenses/azure-core-1.10.0.jar.sha1

@@ -1 +0,0 @@
-d5e1258ba153b5e27c90b7c9cad262e6fc171d24

+ 1 - 0
plugins/repository-azure/licenses/azure-core-1.16.0.jar.sha1

@@ -0,0 +1 @@
+4942bfa35a89a1fc9cabd18427a9b450d392215b

+ 0 - 1
plugins/repository-azure/licenses/azure-core-http-netty-1.6.3.jar.sha1

@@ -1 +0,0 @@
-1c72bdc36faad65f53dd160becc38dd93a7356e2

+ 1 - 0
plugins/repository-azure/licenses/azure-core-http-netty-1.9.1.jar.sha1

@@ -0,0 +1 @@
+b78134e2715eaef150ae3786806ff640bd0439ba

+ 1 - 0
plugins/repository-azure/licenses/azure-storage-blob-12.11.1.jar.sha1

@@ -0,0 +1 @@
+ac89edaa19ee481c832970e944af16b3b772881a

+ 1 - 0
plugins/repository-azure/licenses/azure-storage-common-12.11.1.jar.sha1

@@ -0,0 +1 @@
+61b336d02e1d8839d68db47d884574fe41535e04

+ 0 - 1
plugins/repository-azure/licenses/azure-storage-common-12.9.0.jar.sha1

@@ -1 +0,0 @@
-42d0439a676e51bb1dea809c60e8a925bb07477c

+ 1 - 0
plugins/repository-azure/licenses/azure-storage-internal-avro-12.0.4.jar.sha1

@@ -0,0 +1 @@
+39733586ba04415ce64b186e17e1f8d9e28f2972

+ 0 - 1
plugins/repository-azure/licenses/jackson-annotations-2.10.4.jar.sha1

@@ -1 +0,0 @@
-6ae6028aff033f194c9710ad87c224ccaadeed6c

+ 1 - 0
plugins/repository-azure/licenses/jackson-annotations-2.12.2.jar.sha1

@@ -0,0 +1 @@
+0a770cc4c0a1fb0bfd8a150a6a0004e42bc99fca

+ 0 - 1
plugins/repository-azure/licenses/jackson-databind-2.10.4.jar.sha1

@@ -1 +0,0 @@
-76e9152e93d4cf052f93a64596f633ba5b1c8ed9

+ 1 - 0
plugins/repository-azure/licenses/jackson-databind-2.12.2.jar.sha1

@@ -0,0 +1 @@
+5f9d79e09ebf5d54a46e9f4543924cf7ae7654e0

+ 0 - 1
plugins/repository-azure/licenses/jackson-dataformat-xml-2.10.4.jar.sha1

@@ -1 +0,0 @@
-ffd80322264922e7edb6b35139ec1f2f55824156

+ 1 - 0
plugins/repository-azure/licenses/jackson-dataformat-xml-2.12.2.jar.sha1

@@ -0,0 +1 @@
+dac1d21b5fe602d492273d35eb28918a91fc5412

+ 0 - 1
plugins/repository-azure/licenses/jackson-datatype-jsr310-2.10.4.jar.sha1

@@ -1 +0,0 @@
-de00203e6fee3493c8978a0064a3dda2e8373545

+ 1 - 0
plugins/repository-azure/licenses/jackson-datatype-jsr310-2.12.2.jar.sha1

@@ -0,0 +1 @@
+00012e36d12f47b4648e2cfe0b12bdcc2c4649bf

+ 0 - 1
plugins/repository-azure/licenses/jackson-module-jaxb-annotations-2.10.4.jar.sha1

@@ -1 +0,0 @@
-68364602aed552c0dcfc5743b393bad95c85b009

+ 1 - 0
plugins/repository-azure/licenses/jackson-module-jaxb-annotations-2.12.2.jar.sha1

@@ -0,0 +1 @@
+f226bd0766b4e81493822e8c81eaa6cab27e589f

+ 0 - 1
plugins/repository-azure/licenses/netty-buffer-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-8e819a81bca88d1e88137336f64531a53db0a4ad

+ 1 - 0
plugins/repository-azure/licenses/netty-buffer-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+40028ce5ac7c43f1c9a1439f74637cad04013e23

+ 0 - 1
plugins/repository-azure/licenses/netty-codec-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-20218de83c906348283f548c255650fd06030424

+ 1 - 0
plugins/repository-azure/licenses/netty-codec-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+d4d2fccea88c80e56d59ce1053c53df0f9f4f5db

+ 1 - 0
plugins/repository-azure/licenses/netty-codec-dns-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+91c445232b12e13bf6757579a39bab81e1233af5

+ 0 - 1
plugins/repository-azure/licenses/netty-codec-http-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-4f30dbc462b26c588dffc0eb7552caef1a0f549e

+ 1 - 0
plugins/repository-azure/licenses/netty-codec-http-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+f8c9b159dcb76452dc98a370a5511ff993670419

+ 0 - 1
plugins/repository-azure/licenses/netty-codec-http2-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-ca35293757f80cd2460c80791757db261615dbe7

+ 1 - 0
plugins/repository-azure/licenses/netty-codec-http2-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+294e90696d8d6e20c889511d2484b37158cb9caa

+ 0 - 1
plugins/repository-azure/licenses/netty-codec-socks-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-df75527823f9fd13f6bd9d9098bd9eb786dcafb5

+ 1 - 0
plugins/repository-azure/licenses/netty-codec-socks-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+97707b764c9287836dcf626dd03c81f3bbfc86c6

+ 0 - 1
plugins/repository-azure/licenses/netty-common-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-927c8563a1662d869b145e70ce82ad89100f2c90

+ 1 - 0
plugins/repository-azure/licenses/netty-common-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+e1206b46384d4dcbecee2901f18ce65ecf02e8a4

+ 0 - 1
plugins/repository-azure/licenses/netty-handler-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-c73443adb9d085d5dc2d5b7f3bdd91d5963976f7

+ 1 - 0
plugins/repository-azure/licenses/netty-handler-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+879a43c2325b08e92e8967218b6ddb0ed4b7a0d3

+ 0 - 1
plugins/repository-azure/licenses/netty-handler-proxy-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-6a2064cc62c7d18719742e1e101199c04c66356c

+ 1 - 0
plugins/repository-azure/licenses/netty-handler-proxy-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+d8cbdc537d75f219c04a057b984b2f0b55c1dbff

+ 0 - 1
plugins/repository-azure/licenses/netty-resolver-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-eb81e1f0eaa99e75983bf3d28cae2b103e0f3a34

+ 1 - 0
plugins/repository-azure/licenses/netty-resolver-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+d07cd47c101dfa655d6d5cc304d523742fd78ca8

+ 1 - 0
plugins/repository-azure/licenses/netty-resolver-dns-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+f44dc8ed52ff8528a88c157879c9baffe464fa46

+ 0 - 1
plugins/repository-azure/licenses/netty-transport-4.1.49.Final.jar.sha1

@@ -1 +0,0 @@
-415ea7f326635743aec952fe2349ca45959e94a7

+ 1 - 0
plugins/repository-azure/licenses/netty-transport-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+09a8bbe1ba082c9434e6f524d3864a53f340f2df

+ 1 - 0
plugins/repository-azure/licenses/netty-transport-native-unix-common-4.1.63.Final.jar.sha1

@@ -0,0 +1 @@
+85bd91382ec54b300ad3ff59efccbb4fccb22a88

+ 0 - 1
plugins/repository-azure/licenses/reactor-core-3.3.10.RELEASE.jar.sha1

@@ -1 +0,0 @@
-f5787f994a9a810c0986418232e06fcf4afc1216

+ 1 - 0
plugins/repository-azure/licenses/reactor-core-3.4.5.jar.sha1

@@ -0,0 +1 @@
+c8adeb48f74b16c2dfb4f06a880820b9eaed50cf

+ 0 - 1
plugins/repository-azure/licenses/reactor-netty-0.9.12.RELEASE.jar.sha1

@@ -1 +0,0 @@
-41022546d07f1499fb9d8617bba4a1a89d3549db

+ 1 - 0
plugins/repository-azure/licenses/reactor-netty-1.0.6.jar.sha1

@@ -0,0 +1 @@
+82e9508698715725c3e1882d3056cd3a743d6bfc

+ 1 - 0
plugins/repository-azure/licenses/reactor-netty-core-1.0.6.jar.sha1

@@ -0,0 +1 @@
+c24e7e989913d50c2ed592892e55ce1284364ac4

+ 1 - 0
plugins/repository-azure/licenses/reactor-netty-http-1.0.6.jar.sha1

@@ -0,0 +1 @@
+6a76dd233bdb1e6dc5364ae1b5c8627c2cb0288f

+ 0 - 1
plugins/repository-azure/licenses/woodstox-core-6.0.2.jar.sha1

@@ -1 +0,0 @@
-bbd163bbdb4d6340298b61a6789cc174fb589868

+ 1 - 0
plugins/repository-azure/licenses/woodstox-core-6.2.4.jar.sha1

@@ -0,0 +1 @@
+16b9f8ab972e67eb21872ea2c40046249d543989

+ 20 - 14
plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureClientProvider.java

@@ -28,6 +28,7 @@ import io.netty.buffer.PooledByteBufAllocator;
 import io.netty.channel.ChannelOption;
 import io.netty.channel.EventLoopGroup;
 import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.resolver.DefaultAddressResolverGroup;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.elasticsearch.common.component.AbstractLifecycleComponent;
@@ -87,6 +88,7 @@ class AzureClientProvider extends AbstractLifecycleComponent {
     private final EventLoopGroup eventLoopGroup;
     private final ConnectionProvider connectionProvider;
     private final ByteBufAllocator byteBufAllocator;
+    private final reactor.netty.http.client.HttpClient nettyHttpClient;
     private final ClientLogger clientLogger = new ClientLogger(AzureClientProvider.class);
     private volatile boolean closed = false;
 
@@ -94,12 +96,14 @@ class AzureClientProvider extends AbstractLifecycleComponent {
                         String reactorExecutorName,
                         EventLoopGroup eventLoopGroup,
                         ConnectionProvider connectionProvider,
-                        ByteBufAllocator byteBufAllocator) {
+                        ByteBufAllocator byteBufAllocator,
+                        reactor.netty.http.client.HttpClient nettyHttpClient) {
         this.threadPool = threadPool;
         this.reactorExecutorName = reactorExecutorName;
         this.eventLoopGroup = eventLoopGroup;
         this.connectionProvider = connectionProvider;
         this.byteBufAllocator = byteBufAllocator;
+        this.nettyHttpClient = nettyHttpClient;
     }
 
     static int eventLoopThreadsFromSettings(Settings settings) {
@@ -117,7 +121,7 @@ class AzureClientProvider extends AbstractLifecycleComponent {
         final TimeValue openConnectionTimeout = OPEN_CONNECTION_TIMEOUT.get(settings);
         final TimeValue maxIdleTime = MAX_IDLE_TIME.get(settings);
 
-        ConnectionProvider provider =
+        ConnectionProvider connectionProvider =
             ConnectionProvider.builder("azure-sdk-connection-pool")
                 .maxConnections(MAX_OPEN_CONNECTIONS.get(settings))
                 .pendingAcquireMaxCount(PENDING_CONNECTION_QUEUE_SIZE) // This determines the max outstanding queued requests
@@ -127,9 +131,22 @@ class AzureClientProvider extends AbstractLifecycleComponent {
 
         ByteBufAllocator pooledByteBufAllocator = createByteBufAllocator();
 
+        reactor.netty.http.client.HttpClient nettyHttpClient = reactor.netty.http.client.HttpClient.create(connectionProvider)
+                .runOn(eventLoopGroup)
+                .option(ChannelOption.ALLOCATOR, pooledByteBufAllocator)
+                .resolver(DefaultAddressResolverGroup.INSTANCE)
+                .port(80)
+                .wiretap(false);
+
         // Just to verify that this executor exists
         threadPool.executor(REPOSITORY_THREAD_POOL_NAME);
-        return new AzureClientProvider(threadPool, REPOSITORY_THREAD_POOL_NAME, eventLoopGroup, provider, pooledByteBufAllocator);
+        return new AzureClientProvider(threadPool,
+            REPOSITORY_THREAD_POOL_NAME,
+            eventLoopGroup,
+            connectionProvider,
+            pooledByteBufAllocator,
+            nettyHttpClient
+        );
     }
 
     private static ByteBufAllocator createByteBufAllocator() {
@@ -160,17 +177,6 @@ class AzureClientProvider extends AbstractLifecycleComponent {
             throw new IllegalStateException("AzureClientProvider is already closed");
         }
 
-        reactor.netty.http.client.HttpClient nettyHttpClient = reactor.netty.http.client.HttpClient.create(connectionProvider);
-        nettyHttpClient = nettyHttpClient
-            .port(80)
-            .wiretap(false);
-
-        nettyHttpClient = nettyHttpClient.tcpConfiguration(tcpClient -> {
-            tcpClient = tcpClient.runOn(eventLoopGroup);
-            tcpClient = tcpClient.option(ChannelOption.ALLOCATOR, byteBufAllocator);
-            return tcpClient;
-        });
-
         final HttpClient httpClient = new NettyAsyncHttpClientBuilder(nettyHttpClient)
             .disableBufferCopy(true)
             .proxy(proxyOptions)

+ 13 - 0
plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java

@@ -34,6 +34,8 @@ import org.elasticsearch.threadpool.ScalingExecutorBuilder;
 import org.elasticsearch.threadpool.ThreadPool;
 import org.elasticsearch.watcher.ResourceWatcherService;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -53,6 +55,17 @@ public class AzureRepositoryPlugin extends Plugin implements RepositoryPlugin, R
         // Trigger static initialization with the plugin class loader
         // so we have access to the proper xml parser
         JacksonAdapter.createDefaultSerializerAdapter();
+
+        // Even though we don't use it, we need to force static init
+        // of the default resolver which reads /etc/hosts so it doesn't init later
+        AccessController.doPrivileged((PrivilegedAction<Void>) () -> {
+            try {
+                Class.forName("io.netty.resolver.HostsFileEntriesResolver");
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+            return null;
+        });
     }
 
     // protected for testing

+ 5 - 0
plugins/repository-azure/src/main/plugin-metadata/plugin-security.policy

@@ -14,4 +14,9 @@ grant {
   // Used by jackson bean deserialization
   permission java.lang.RuntimePermission "accessDeclaredMembers";
   permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+  // needed by netty dns resolver
+  permission java.io.FilePermission "/etc/hosts", "read";
+  permission java.io.FilePermission "/etc/resolv.conf", "read";
+  permission java.io.FilePermission "/etc/resolver", "read";
+  permission java.io.FilePermission "/etc/resolver/-", "read";
 };

+ 0 - 1
plugins/repository-s3/licenses/jackson-annotations-2.10.4.jar.sha1

@@ -1 +0,0 @@
-6ae6028aff033f194c9710ad87c224ccaadeed6c

+ 1 - 0
plugins/repository-s3/licenses/jackson-annotations-2.12.2.jar.sha1

@@ -0,0 +1 @@
+0a770cc4c0a1fb0bfd8a150a6a0004e42bc99fca

+ 0 - 1
plugins/repository-s3/licenses/jackson-databind-2.10.4.jar.sha1

@@ -1 +0,0 @@
-76e9152e93d4cf052f93a64596f633ba5b1c8ed9

+ 1 - 0
plugins/repository-s3/licenses/jackson-databind-2.12.2.jar.sha1

@@ -0,0 +1 @@
+5f9d79e09ebf5d54a46e9f4543924cf7ae7654e0

+ 0 - 1
x-pack/plugin/sql/jdbc/licenses/jackson-core-2.10.4.jar.sha1

@@ -1 +0,0 @@
-8796585e716440d6dd5128b30359932a9eb74d0d

+ 1 - 0
x-pack/plugin/sql/jdbc/licenses/jackson-core-2.12.2.jar.sha1

@@ -0,0 +1 @@
+8df50138521d05561a308ec2799cc8dda20c06df

+ 0 - 1
x-pack/plugin/sql/jdbc/licenses/jackson-dataformat-cbor-2.10.4.jar.sha1

@@ -1 +0,0 @@
-c854bb2d46138198cb5d4aae86ef6c04b8bc1e70

+ 1 - 0
x-pack/plugin/sql/jdbc/licenses/jackson-dataformat-cbor-2.12.2.jar.sha1

@@ -0,0 +1 @@
+71866a16d9678d8d7718baea0a28c7d0e1a67360

+ 0 - 1
x-pack/plugin/sql/sql-action/licenses/jackson-core-2.10.4.jar.sha1

@@ -1 +0,0 @@
-8796585e716440d6dd5128b30359932a9eb74d0d

+ 1 - 0
x-pack/plugin/sql/sql-action/licenses/jackson-core-2.12.2.jar.sha1

@@ -0,0 +1 @@
+8df50138521d05561a308ec2799cc8dda20c06df

+ 0 - 1
x-pack/plugin/sql/sql-client/licenses/jackson-core-2.10.4.jar.sha1

@@ -1 +0,0 @@
-8796585e716440d6dd5128b30359932a9eb74d0d

+ 1 - 0
x-pack/plugin/sql/sql-client/licenses/jackson-core-2.12.2.jar.sha1

@@ -0,0 +1 @@
+8df50138521d05561a308ec2799cc8dda20c06df

+ 0 - 1
x-pack/plugin/sql/sql-proto/licenses/jackson-core-2.10.4.jar.sha1

@@ -1 +0,0 @@
-8796585e716440d6dd5128b30359932a9eb74d0d

+ 1 - 0
x-pack/plugin/sql/sql-proto/licenses/jackson-core-2.12.2.jar.sha1

@@ -0,0 +1 @@
+8df50138521d05561a308ec2799cc8dda20c06df