diff --git a/changelog/unreleased/PR#3593-update-software-amazon-awssdk-to-v2-41-0-branch.yml b/changelog/unreleased/PR#3593-update-software-amazon-awssdk-to-v2-41-0-branch.yml new file mode 100644 index 000000000000..dc73ed44949b --- /dev/null +++ b/changelog/unreleased/PR#3593-update-software-amazon-awssdk-to-v2-41-0-branch.yml @@ -0,0 +1,6 @@ +title: Update software.amazon.awssdk:* to v2.42.37 (branch_9x) +authors: +- name: solrbot +links: +- name: PR#3593 + url: https://github.com/apache/solr/pull/3593 diff --git a/solr/licenses/annotations-2.31.77.jar.sha1 b/solr/licenses/annotations-2.31.77.jar.sha1 deleted file mode 100644 index 993c2c0f639d..000000000000 --- a/solr/licenses/annotations-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -fd0536be5ab3299a6f35d24c3baaf63ffcb90c21 diff --git a/solr/licenses/annotations-2.42.37.jar.sha1 b/solr/licenses/annotations-2.42.37.jar.sha1 new file mode 100644 index 000000000000..dbcf3de7171c --- /dev/null +++ b/solr/licenses/annotations-2.42.37.jar.sha1 @@ -0,0 +1 @@ +b1a13a1f1d3b5445e2f60dcc01c0e1c66662ce32 diff --git a/solr/licenses/apache-client-2.31.77.jar.sha1 b/solr/licenses/apache-client-2.31.77.jar.sha1 deleted file mode 100644 index 8f208c3a1332..000000000000 --- a/solr/licenses/apache-client-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -072af5b4b875856b4b9ea39f9744a0223b0f7388 diff --git a/solr/licenses/apache-client-2.42.37.jar.sha1 b/solr/licenses/apache-client-2.42.37.jar.sha1 new file mode 100644 index 000000000000..06b09d5efbe4 --- /dev/null +++ b/solr/licenses/apache-client-2.42.37.jar.sha1 @@ -0,0 +1 @@ +34a1dcf7f2d504954b00b5d2df485b445ff0fe4a diff --git a/solr/licenses/arns-2.31.77.jar.sha1 b/solr/licenses/arns-2.31.77.jar.sha1 deleted file mode 100644 index fbf9a6601dad..000000000000 --- a/solr/licenses/arns-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a86b2f68842758bfea4fdc93bd78eae6dbf17f33 diff --git a/solr/licenses/arns-2.42.37.jar.sha1 b/solr/licenses/arns-2.42.37.jar.sha1 new file mode 100644 index 000000000000..bd3ecaf3c21a --- /dev/null +++ b/solr/licenses/arns-2.42.37.jar.sha1 @@ -0,0 +1 @@ +dfa5f78ee3ef1ae7751d77cbfea79ab9462a4eda diff --git a/solr/licenses/auth-2.31.77.jar.sha1 b/solr/licenses/auth-2.31.77.jar.sha1 deleted file mode 100644 index d66d2a23e453..000000000000 --- a/solr/licenses/auth-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d5d128441995040d2a357b09e3b31b2bd2f4c45b diff --git a/solr/licenses/auth-2.42.37.jar.sha1 b/solr/licenses/auth-2.42.37.jar.sha1 new file mode 100644 index 000000000000..82f6bede40be --- /dev/null +++ b/solr/licenses/auth-2.42.37.jar.sha1 @@ -0,0 +1 @@ +1367486a9ad11dc1d86db7b91f1ae6763c80caa9 diff --git a/solr/licenses/aws-core-2.31.77.jar.sha1 b/solr/licenses/aws-core-2.31.77.jar.sha1 deleted file mode 100644 index 7d4cebbf8325..000000000000 --- a/solr/licenses/aws-core-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -e0e1fc6b0c6af44adb6e5fceffe4e0f33571b694 diff --git a/solr/licenses/aws-core-2.42.37.jar.sha1 b/solr/licenses/aws-core-2.42.37.jar.sha1 new file mode 100644 index 000000000000..81229d11a2ab --- /dev/null +++ b/solr/licenses/aws-core-2.42.37.jar.sha1 @@ -0,0 +1 @@ +81da5401148dc666e61137c2ec4cb6d16a1d93e9 diff --git a/solr/licenses/aws-query-protocol-2.31.77.jar.sha1 b/solr/licenses/aws-query-protocol-2.31.77.jar.sha1 deleted file mode 100644 index 443572c371f1..000000000000 --- a/solr/licenses/aws-query-protocol-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -668f8dfed02d4ddac13d8ad232b0ed195cf9076f diff --git a/solr/licenses/aws-query-protocol-2.42.37.jar.sha1 b/solr/licenses/aws-query-protocol-2.42.37.jar.sha1 new file mode 100644 index 000000000000..63439cfd09ef --- /dev/null +++ b/solr/licenses/aws-query-protocol-2.42.37.jar.sha1 @@ -0,0 +1 @@ +e9e2849ad9acc8ac3589d9fb77c6ba9e5e7e327c diff --git a/solr/licenses/aws-xml-protocol-2.31.77.jar.sha1 b/solr/licenses/aws-xml-protocol-2.31.77.jar.sha1 deleted file mode 100644 index 0cf94fc66d49..000000000000 --- a/solr/licenses/aws-xml-protocol-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -a35a6784bea0b5446e2771f26c5137f2335a4b90 diff --git a/solr/licenses/aws-xml-protocol-2.42.37.jar.sha1 b/solr/licenses/aws-xml-protocol-2.42.37.jar.sha1 new file mode 100644 index 000000000000..c7d66dbc614a --- /dev/null +++ b/solr/licenses/aws-xml-protocol-2.42.37.jar.sha1 @@ -0,0 +1 @@ +495e1f5428bea389bd9bf4d431bc16445d9d6ce9 diff --git a/solr/licenses/checksums-2.31.77.jar.sha1 b/solr/licenses/checksums-2.31.77.jar.sha1 deleted file mode 100644 index c80b6c0ca7ae..000000000000 --- a/solr/licenses/checksums-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -1e09242172b9ddcaaeefab31fc483914863bc0d6 diff --git a/solr/licenses/checksums-2.42.37.jar.sha1 b/solr/licenses/checksums-2.42.37.jar.sha1 new file mode 100644 index 000000000000..74684e7cf131 --- /dev/null +++ b/solr/licenses/checksums-2.42.37.jar.sha1 @@ -0,0 +1 @@ +b74d0ae9d5f24686f687687cf9f0fbf075eeaa63 diff --git a/solr/licenses/checksums-spi-2.31.77.jar.sha1 b/solr/licenses/checksums-spi-2.31.77.jar.sha1 deleted file mode 100644 index b4f35559667f..000000000000 --- a/solr/licenses/checksums-spi-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -83ebf7c1b41195a498f76216f095bfa8ce2c9002 diff --git a/solr/licenses/checksums-spi-2.42.37.jar.sha1 b/solr/licenses/checksums-spi-2.42.37.jar.sha1 new file mode 100644 index 000000000000..29316fa67d0e --- /dev/null +++ b/solr/licenses/checksums-spi-2.42.37.jar.sha1 @@ -0,0 +1 @@ +9efc58b403257390065e1dac7137a79e261df2a9 diff --git a/solr/licenses/crt-core-2.31.77.jar.sha1 b/solr/licenses/crt-core-2.31.77.jar.sha1 deleted file mode 100644 index ad79020b61f1..000000000000 --- a/solr/licenses/crt-core-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -408b5feb87a706b8c1624b739760e9f17f7c7db5 diff --git a/solr/licenses/crt-core-2.42.37.jar.sha1 b/solr/licenses/crt-core-2.42.37.jar.sha1 new file mode 100644 index 000000000000..6863d6be63fe --- /dev/null +++ b/solr/licenses/crt-core-2.42.37.jar.sha1 @@ -0,0 +1 @@ +4e3d8cfb9b52b94f60a91849bbfa09c0bc0f1ab9 diff --git a/solr/licenses/endpoints-spi-2.31.77.jar.sha1 b/solr/licenses/endpoints-spi-2.31.77.jar.sha1 deleted file mode 100644 index f144b620dbca..000000000000 --- a/solr/licenses/endpoints-spi-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -384d751218565ae19217bb70e8866eb4093319c3 diff --git a/solr/licenses/endpoints-spi-2.42.37.jar.sha1 b/solr/licenses/endpoints-spi-2.42.37.jar.sha1 new file mode 100644 index 000000000000..cb6f35d8a95a --- /dev/null +++ b/solr/licenses/endpoints-spi-2.42.37.jar.sha1 @@ -0,0 +1 @@ +5cf2c9e67fdf32b57417f1975cdff243268e383a diff --git a/solr/licenses/http-auth-2.31.77.jar.sha1 b/solr/licenses/http-auth-2.31.77.jar.sha1 deleted file mode 100644 index 5da4d324200c..000000000000 --- a/solr/licenses/http-auth-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -5f266baa4395bd8a96bcf66b2412731ab482c59b diff --git a/solr/licenses/http-auth-2.42.37.jar.sha1 b/solr/licenses/http-auth-2.42.37.jar.sha1 new file mode 100644 index 000000000000..7c240cb4aa5d --- /dev/null +++ b/solr/licenses/http-auth-2.42.37.jar.sha1 @@ -0,0 +1 @@ +ad2b97b222ba564bc4e1f5d89a4edfe50e9bcdf8 diff --git a/solr/licenses/http-auth-aws-2.31.77.jar.sha1 b/solr/licenses/http-auth-aws-2.31.77.jar.sha1 deleted file mode 100644 index 1d96629ab912..000000000000 --- a/solr/licenses/http-auth-aws-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -60a26f2820ff87be082061cb22af7a8572e05388 diff --git a/solr/licenses/http-auth-aws-2.42.37.jar.sha1 b/solr/licenses/http-auth-aws-2.42.37.jar.sha1 new file mode 100644 index 000000000000..db90fbda51f5 --- /dev/null +++ b/solr/licenses/http-auth-aws-2.42.37.jar.sha1 @@ -0,0 +1 @@ +98fa9005878817a77ca4ac8bd36173e5fd7762e8 diff --git a/solr/licenses/http-auth-aws-eventstream-2.31.77.jar.sha1 b/solr/licenses/http-auth-aws-eventstream-2.31.77.jar.sha1 deleted file mode 100644 index 8ae0e6f3173a..000000000000 --- a/solr/licenses/http-auth-aws-eventstream-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -5a126d4034cd431963a417ed21e426a1ae30a21c diff --git a/solr/licenses/http-auth-aws-eventstream-2.42.37.jar.sha1 b/solr/licenses/http-auth-aws-eventstream-2.42.37.jar.sha1 new file mode 100644 index 000000000000..92d481ec2554 --- /dev/null +++ b/solr/licenses/http-auth-aws-eventstream-2.42.37.jar.sha1 @@ -0,0 +1 @@ +443b35c30db91baad70a365c68243f0e08caf70c diff --git a/solr/licenses/http-auth-spi-2.31.77.jar.sha1 b/solr/licenses/http-auth-spi-2.31.77.jar.sha1 deleted file mode 100644 index 16908c7c1731..000000000000 --- a/solr/licenses/http-auth-spi-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -94845f78603272544442bec2f52852b59859451c diff --git a/solr/licenses/http-auth-spi-2.42.37.jar.sha1 b/solr/licenses/http-auth-spi-2.42.37.jar.sha1 new file mode 100644 index 000000000000..c45d3c53f511 --- /dev/null +++ b/solr/licenses/http-auth-spi-2.42.37.jar.sha1 @@ -0,0 +1 @@ +e72436b6c5e7601f2d6172b09fe44ab5c97c33e7 diff --git a/solr/licenses/http-client-spi-2.31.77.jar.sha1 b/solr/licenses/http-client-spi-2.31.77.jar.sha1 deleted file mode 100644 index 50407e98a4b0..000000000000 --- a/solr/licenses/http-client-spi-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -211c6fed3efe982f3470063a970189e71ee6a81e diff --git a/solr/licenses/http-client-spi-2.42.37.jar.sha1 b/solr/licenses/http-client-spi-2.42.37.jar.sha1 new file mode 100644 index 000000000000..85a0700bd9b0 --- /dev/null +++ b/solr/licenses/http-client-spi-2.42.37.jar.sha1 @@ -0,0 +1 @@ +a6a7d757cc5c0606c725228a25c5800ef2380d5d diff --git a/solr/licenses/identity-spi-2.31.77.jar.sha1 b/solr/licenses/identity-spi-2.31.77.jar.sha1 deleted file mode 100644 index 3e53e08927dc..000000000000 --- a/solr/licenses/identity-spi-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ce3910c6db3986a089ab82b4196edbe69d1a016b diff --git a/solr/licenses/identity-spi-2.42.37.jar.sha1 b/solr/licenses/identity-spi-2.42.37.jar.sha1 new file mode 100644 index 000000000000..0319e9963c18 --- /dev/null +++ b/solr/licenses/identity-spi-2.42.37.jar.sha1 @@ -0,0 +1 @@ +c0bcbea7717e6220421af3c320f59272e1964a25 diff --git a/solr/licenses/json-utils-2.31.77.jar.sha1 b/solr/licenses/json-utils-2.31.77.jar.sha1 deleted file mode 100644 index 22026fe79219..000000000000 --- a/solr/licenses/json-utils-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -666b548875365b7d5160dab6f8b673b6bee8be33 diff --git a/solr/licenses/json-utils-2.42.37.jar.sha1 b/solr/licenses/json-utils-2.42.37.jar.sha1 new file mode 100644 index 000000000000..0dd0e260574b --- /dev/null +++ b/solr/licenses/json-utils-2.42.37.jar.sha1 @@ -0,0 +1 @@ +bed7e7e88026ff273838cbd40de3b9eded21e306 diff --git a/solr/licenses/metrics-spi-2.31.77.jar.sha1 b/solr/licenses/metrics-spi-2.31.77.jar.sha1 deleted file mode 100644 index 43682eb4611d..000000000000 --- a/solr/licenses/metrics-spi-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -fb83360704593dd3b2742ae3eae061a4146e695a diff --git a/solr/licenses/metrics-spi-2.42.37.jar.sha1 b/solr/licenses/metrics-spi-2.42.37.jar.sha1 new file mode 100644 index 000000000000..e892e21ff55c --- /dev/null +++ b/solr/licenses/metrics-spi-2.42.37.jar.sha1 @@ -0,0 +1 @@ +87e9e8c04f82394aa7cb916616e1cbcfc7a954f8 diff --git a/solr/licenses/profiles-2.31.77.jar.sha1 b/solr/licenses/profiles-2.31.77.jar.sha1 deleted file mode 100644 index e87a2c83e760..000000000000 --- a/solr/licenses/profiles-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -fbc4c3b6258f4deba8154c3eb4a9a6c2b5e53f51 diff --git a/solr/licenses/profiles-2.42.37.jar.sha1 b/solr/licenses/profiles-2.42.37.jar.sha1 new file mode 100644 index 000000000000..7a9c3b0f0e29 --- /dev/null +++ b/solr/licenses/profiles-2.42.37.jar.sha1 @@ -0,0 +1 @@ +b2e57056153651f93a826a6e0cfc2d935d876ee3 diff --git a/solr/licenses/protocol-core-2.31.77.jar.sha1 b/solr/licenses/protocol-core-2.31.77.jar.sha1 deleted file mode 100644 index c59c62f21eb9..000000000000 --- a/solr/licenses/protocol-core-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -10e1830e00cad105be1727db59d15fbe29ccb372 diff --git a/solr/licenses/protocol-core-2.42.37.jar.sha1 b/solr/licenses/protocol-core-2.42.37.jar.sha1 new file mode 100644 index 000000000000..0e838547cc83 --- /dev/null +++ b/solr/licenses/protocol-core-2.42.37.jar.sha1 @@ -0,0 +1 @@ +49bcc7cdf41b39b84f83f22201f888ac6d60b3e8 diff --git a/solr/licenses/regions-2.31.77.jar.sha1 b/solr/licenses/regions-2.31.77.jar.sha1 deleted file mode 100644 index 5473b1d0c3fe..000000000000 --- a/solr/licenses/regions-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -92da8b47fbf21df27a026a5e345f2309f1bbb6c7 diff --git a/solr/licenses/regions-2.42.37.jar.sha1 b/solr/licenses/regions-2.42.37.jar.sha1 new file mode 100644 index 000000000000..42d0cc1ff7da --- /dev/null +++ b/solr/licenses/regions-2.42.37.jar.sha1 @@ -0,0 +1 @@ +9f2f7e54e093b5d77638b97f5fa087bbc38f7638 diff --git a/solr/licenses/retries-2.31.77.jar.sha1 b/solr/licenses/retries-2.31.77.jar.sha1 deleted file mode 100644 index 21fc273d340c..000000000000 --- a/solr/licenses/retries-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -d909f3a7d0f55fc8d77e055830dfa24f343864dc diff --git a/solr/licenses/retries-2.42.37.jar.sha1 b/solr/licenses/retries-2.42.37.jar.sha1 new file mode 100644 index 000000000000..9a9273794346 --- /dev/null +++ b/solr/licenses/retries-2.42.37.jar.sha1 @@ -0,0 +1 @@ +360553c72c0e1b1949b8109bf4f202096bf3eac7 diff --git a/solr/licenses/retries-spi-2.31.77.jar.sha1 b/solr/licenses/retries-spi-2.31.77.jar.sha1 deleted file mode 100644 index 21f98fba5967..000000000000 --- a/solr/licenses/retries-spi-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -de182d8aa722f68ab074a765e59bd1e1784cdc2f diff --git a/solr/licenses/retries-spi-2.42.37.jar.sha1 b/solr/licenses/retries-spi-2.42.37.jar.sha1 new file mode 100644 index 000000000000..66207ff36536 --- /dev/null +++ b/solr/licenses/retries-spi-2.42.37.jar.sha1 @@ -0,0 +1 @@ +de34d04f9fc382bea4b91c6e398739512db0b96e diff --git a/solr/licenses/s3-2.31.77.jar.sha1 b/solr/licenses/s3-2.31.77.jar.sha1 deleted file mode 100644 index 1447265a1a3b..000000000000 --- a/solr/licenses/s3-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -ee870a078a441c9e06c2ae5abd268285d76b2759 diff --git a/solr/licenses/s3-2.42.37.jar.sha1 b/solr/licenses/s3-2.42.37.jar.sha1 new file mode 100644 index 000000000000..4f9e990c363e --- /dev/null +++ b/solr/licenses/s3-2.42.37.jar.sha1 @@ -0,0 +1 @@ +1f84320b40a915b39b002bcd08247c6c4186be47 diff --git a/solr/licenses/sdk-core-2.31.77.jar.sha1 b/solr/licenses/sdk-core-2.31.77.jar.sha1 deleted file mode 100644 index efed247beff6..000000000000 --- a/solr/licenses/sdk-core-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -4ddfde140a85ae83c8c82423b66785a7db77921b diff --git a/solr/licenses/sdk-core-2.42.37.jar.sha1 b/solr/licenses/sdk-core-2.42.37.jar.sha1 new file mode 100644 index 000000000000..71dc4bad1a23 --- /dev/null +++ b/solr/licenses/sdk-core-2.42.37.jar.sha1 @@ -0,0 +1 @@ +07de694e0e72862f093c5c837f27fb384a6b9610 diff --git a/solr/licenses/sts-2.31.77.jar.sha1 b/solr/licenses/sts-2.31.77.jar.sha1 deleted file mode 100644 index fd29fb9821a9..000000000000 --- a/solr/licenses/sts-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -aec46859f01f4ca616cc90a67e4bce7622511fe0 diff --git a/solr/licenses/sts-2.42.37.jar.sha1 b/solr/licenses/sts-2.42.37.jar.sha1 new file mode 100644 index 000000000000..1090f07d7282 --- /dev/null +++ b/solr/licenses/sts-2.42.37.jar.sha1 @@ -0,0 +1 @@ +e1ce18a7bb2209d6203073357e77d470c4573f06 diff --git a/solr/licenses/third-party-jackson-core-2.31.77.jar.sha1 b/solr/licenses/third-party-jackson-core-2.31.77.jar.sha1 deleted file mode 100644 index c89ee16b9502..000000000000 --- a/solr/licenses/third-party-jackson-core-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -64d134e5d930933ffcbd80976a10cbd9fd082969 diff --git a/solr/licenses/third-party-jackson-core-2.42.37.jar.sha1 b/solr/licenses/third-party-jackson-core-2.42.37.jar.sha1 new file mode 100644 index 000000000000..6fb5a7ac5af8 --- /dev/null +++ b/solr/licenses/third-party-jackson-core-2.42.37.jar.sha1 @@ -0,0 +1 @@ +09ad8d94e91bfa5c6e2ceb0aa9b9f3201ebf9ab9 diff --git a/solr/licenses/url-connection-client-2.31.77.jar.sha1 b/solr/licenses/url-connection-client-2.31.77.jar.sha1 deleted file mode 100644 index c1482b916131..000000000000 --- a/solr/licenses/url-connection-client-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -5bacf67a99c78684bfbf06b457c2700ab604b095 diff --git a/solr/licenses/url-connection-client-2.42.37.jar.sha1 b/solr/licenses/url-connection-client-2.42.37.jar.sha1 new file mode 100644 index 000000000000..6ac8dc316dfe --- /dev/null +++ b/solr/licenses/url-connection-client-2.42.37.jar.sha1 @@ -0,0 +1 @@ +0d6dc3d6fdf3404e29321698c0c7ea4b0de2c90d diff --git a/solr/licenses/utils-2.31.77.jar.sha1 b/solr/licenses/utils-2.31.77.jar.sha1 deleted file mode 100644 index b16a6897988b..000000000000 --- a/solr/licenses/utils-2.31.77.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -6936b4777c4cdeb7a25c1a4d43fc8c92c5c01cfb diff --git a/solr/licenses/utils-2.42.37.jar.sha1 b/solr/licenses/utils-2.42.37.jar.sha1 new file mode 100644 index 000000000000..cdea5b4a6636 --- /dev/null +++ b/solr/licenses/utils-2.42.37.jar.sha1 @@ -0,0 +1 @@ +9b862317e697a236013adbd9299174595ed279bb diff --git a/solr/licenses/utils-lite-2.42.37.jar.sha1 b/solr/licenses/utils-lite-2.42.37.jar.sha1 new file mode 100644 index 000000000000..28a9b84e9b95 --- /dev/null +++ b/solr/licenses/utils-lite-2.42.37.jar.sha1 @@ -0,0 +1 @@ +7fbe573b0b7764ae29d2b36e63543a372c4cbbfb diff --git a/solr/modules/s3-repository/src/java/org/apache/solr/s3/S3StorageClient.java b/solr/modules/s3-repository/src/java/org/apache/solr/s3/S3StorageClient.java index 990a051eae88..fbf611b2fde0 100644 --- a/solr/modules/s3-repository/src/java/org/apache/solr/s3/S3StorageClient.java +++ b/solr/modules/s3-repository/src/java/org/apache/solr/s3/S3StorageClient.java @@ -44,6 +44,7 @@ import software.amazon.awssdk.core.retry.RetryMode; import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.core.sync.ResponseTransformer; +import software.amazon.awssdk.http.SdkHttpClient; import software.amazon.awssdk.http.apache.ApacheHttpClient; import software.amazon.awssdk.http.apache.ProxyConfiguration; import software.amazon.awssdk.regions.Region; @@ -92,6 +93,9 @@ public class S3StorageClient { /** The S3 bucket where we read/write all data. */ private final String bucketName; + /** The HTTP client used by the S3 client. Needs to be closed separately. */ + private final SdkHttpClient httpClient; + S3StorageClient( String bucketName, String profile, @@ -100,30 +104,19 @@ public class S3StorageClient { boolean proxyUseSystemSettings, String endpoint, boolean disableRetries) { - this( - createInternalClient( - profile, region, proxyUrl, proxyUseSystemSettings, endpoint, disableRetries), - bucketName); + this.bucketName = bucketName; + this.httpClient = createHttpClient(proxyUrl, proxyUseSystemSettings); + this.s3Client = createInternalClient(profile, region, endpoint, disableRetries, httpClient); } @VisibleForTesting S3StorageClient(S3Client s3Client, String bucketName) { this.s3Client = s3Client; this.bucketName = bucketName; + this.httpClient = null; } - private static S3Client createInternalClient( - String profile, - String region, - String proxyUrl, - boolean proxyUseSystemSettings, - String endpoint, - boolean disableRetries) { - S3Configuration.Builder configBuilder = S3Configuration.builder().pathStyleAccessEnabled(true); - if (StrUtils.isNotNullOrEmpty(profile)) { - configBuilder.profileName(profile); - } - + private static SdkHttpClient createHttpClient(String proxyUrl, boolean proxyUseSystemSettings) { ApacheHttpClient.Builder sdkHttpClientBuilder = ApacheHttpClient.builder(); // If configured, add proxy ProxyConfiguration.Builder proxyConfigurationBuilder = ProxyConfiguration.builder(); @@ -135,6 +128,20 @@ private static S3Client createInternalClient( sdkHttpClientBuilder.proxyConfiguration(proxyConfigurationBuilder.build()); sdkHttpClientBuilder.useIdleConnectionReaper(false); + return sdkHttpClientBuilder.build(); + } + + private static S3Client createInternalClient( + String profile, + String region, + String endpoint, + boolean disableRetries, + SdkHttpClient httpClient) { + S3Configuration.Builder configBuilder = S3Configuration.builder().pathStyleAccessEnabled(true); + if (StrUtils.isNotNullOrEmpty(profile)) { + configBuilder.profileName(profile); + } + /* * Retry logic */ @@ -167,7 +174,7 @@ private static S3Client createInternalClient( .credentialsProvider(credentialsProviderBuilder.build()) .overrideConfiguration(builder -> builder.retryStrategy(retryStrategy)) .serviceConfiguration(configBuilder.build()) - .httpClient(sdkHttpClientBuilder.build()); + .httpClient(httpClient); if (StrUtils.isNotNullOrEmpty(endpoint)) { clientBuilder.endpointOverride(URI.create(endpoint)); @@ -374,23 +381,27 @@ InputStream pullStream(String path) throws S3Exception { GetObjectRequest.Builder getBuilder = GetObjectRequest.builder().bucket(bucketName).key(s3Path); // This InputStream instance needs to be closed by the caller - return s3Client.getObject( - getBuilder.build(), - ResponseTransformer.unmanaged( - (response, inputStream) -> { - final long contentLength = response.contentLength(); - return new ResumableInputStream( - inputStream, - bytesRead -> { - if (contentLength > 0 && bytesRead >= contentLength) { - // No more bytes to read - return null; - } else if (bytesRead > 0) { - getBuilder.range(String.format(Locale.ROOT, "bytes=%d-", bytesRead)); - } - return s3Client.getObject(getBuilder.build()); - }); - })); + // Use Duration.ZERO to disable timeout and prevent response-input-stream-timeout-scheduler + // thread leak (see https://github.com/aws/aws-sdk-java-v2/issues/6567) + software.amazon.awssdk.core.ResponseInputStream< + software.amazon.awssdk.services.s3.model.GetObjectResponse> + responseStream = + s3Client.getObject( + getBuilder.build(), ResponseTransformer.toInputStream(java.time.Duration.ZERO)); + final long contentLength = responseStream.response().contentLength(); + return new ResumableInputStream( + responseStream, + bytesRead -> { + if (contentLength > 0 && bytesRead >= contentLength) { + // No more bytes to read + return null; + } else if (bytesRead > 0) { + getBuilder.range(String.format(Locale.ROOT, "bytes=%d-", bytesRead)); + } + // Use Duration.ZERO to disable timeout on resumed streams as well + return s3Client.getObject( + getBuilder.build(), ResponseTransformer.toInputStream(java.time.Duration.ZERO)); + }); } catch (SdkException sdke) { throw handleAmazonException(sdke); } @@ -419,6 +430,9 @@ OutputStream pushStream(String path) throws S3Exception { /** Override {@link Closeable} since we throw no exception. */ void close() { s3Client.close(); + if (httpClient != null) { + httpClient.close(); + } } /** Any file path that specifies a non-existent file will not be treated as an error. */ @@ -544,7 +558,7 @@ private String getParentDirectory(String path) { } /** Ensures path adheres to some rules: -Doesn't start with a leading slash */ - String sanitizedPath(String path) throws S3Exception { + String sanitizedPath(String path) { // Trim space from start and end String sanitizedPath = path.trim(); @@ -580,7 +594,7 @@ String sanitizedFilePath(String path) throws S3Exception { * Ensures directory path adheres to some rules: -Overall Path rules from `sanitizedPath` -Add a * trailing slash if one does not exist */ - String sanitizedDirPath(String path) throws S3Exception { + String sanitizedDirPath(String path) { // Trim space from start and end String sanitizedPath = sanitizedPath(path); diff --git a/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3BackupRepositoryTest.java b/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3BackupRepositoryTest.java index 498b0788ab09..bdb5c2cb5854 100644 --- a/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3BackupRepositoryTest.java +++ b/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3BackupRepositoryTest.java @@ -42,6 +42,7 @@ import org.junit.Test; import org.junit.rules.TemporaryFolder; import software.amazon.awssdk.core.sync.RequestBody; +import software.amazon.awssdk.core.sync.ResponseTransformer; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; @@ -107,18 +108,18 @@ public void testLocalDirectoryFunctions() throws Exception { repo.createDirectory(path); assertTrue(repo.exists(path)); assertEquals(BackupRepository.PathType.DIRECTORY, repo.getPathType(path)); - assertEquals("No files should exist in dir yet", repo.listAll(path).length, 0); + assertEquals("No files should exist in dir yet", 0, repo.listAll(path).length); URI subDir = new URI("/test/dir/"); repo.createDirectory(subDir); assertTrue(repo.exists(subDir)); assertEquals(BackupRepository.PathType.DIRECTORY, repo.getPathType(subDir)); - assertEquals("No files should exist in subdir yet", repo.listAll(subDir).length, 0); + assertEquals("No files should exist in subdir yet", 0, repo.listAll(subDir).length); assertEquals( "subDir should now be returned when listing all in parent dir", - repo.listAll(path).length, - 1); + 1, + repo.listAll(path).length); repo.deleteDirectory(path); assertFalse(repo.exists(path)); @@ -338,7 +339,10 @@ private void pushObject(String path, String content) { private File pullObject(String path) throws IOException { try (S3Client s3 = S3_MOCK_RULE.createS3ClientV2()) { File file = temporaryFolder.newFile(); - InputStream input = s3.getObject(b -> b.bucket(BUCKET_NAME).key(path)); + InputStream input = + s3.getObject( + b -> b.bucket(BUCKET_NAME).key(path), + ResponseTransformer.toInputStream(java.time.Duration.ZERO)); FileUtils.copyInputStreamToFile(input, file); return file; } diff --git a/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3OutputStreamTest.java b/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3OutputStreamTest.java index 1116d3103d47..7746703ba8ce 100644 --- a/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3OutputStreamTest.java +++ b/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3OutputStreamTest.java @@ -21,11 +21,13 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import java.time.Duration; import org.apache.solr.SolrTestCaseJ4; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; +import software.amazon.awssdk.core.sync.ResponseTransformer; import software.amazon.awssdk.services.s3.S3Client; public class S3OutputStreamTest extends SolrTestCaseJ4 { @@ -63,7 +65,10 @@ public void testWriteByteByByte() throws IOException { } // Check we can re-read same content - try (InputStream input = s3.getObject(b -> b.bucket(BUCKET).key("byte-by-byte"))) { + try (InputStream input = + s3.getObject( + b -> b.bucket(BUCKET).key("byte-by-byte"), + ResponseTransformer.toInputStream(Duration.ZERO))) { String read = new String(input.readAllBytes(), StandardCharsets.UTF_8); assertEquals("Contents saved to S3 file did not match expected", "hello", read); } @@ -82,7 +87,10 @@ public void testWriteSmallBuffer() throws IOException { } // Check we can re-read same content - try (InputStream input = s3.getObject(b -> b.bucket(BUCKET).key("small-buffer"))) { + try (InputStream input = + s3.getObject( + b -> b.bucket(BUCKET).key("small-buffer"), + ResponseTransformer.toInputStream(Duration.ZERO))) { String read = new String(input.readAllBytes(), StandardCharsets.UTF_8); assertEquals("hello", read); } @@ -103,7 +111,10 @@ public void testWriteLargeBuffer() throws IOException { } // Check we can re-read same content - try (InputStream input = s3.getObject(b -> b.bucket(BUCKET).key("large-buffer"))) { + try (InputStream input = + s3.getObject( + b -> b.bucket(BUCKET).key("large-buffer"), + ResponseTransformer.toInputStream(Duration.ZERO))) { String read = new String(input.readAllBytes(), StandardCharsets.UTF_8); assertEquals(new String(buffer, StandardCharsets.UTF_8), read); } @@ -125,7 +136,10 @@ public void testFlushSmallBuffer() throws IOException { } // Check we can re-read same content - try (InputStream input = s3.getObject(b -> b.bucket(BUCKET).key("flush-small"))) { + try (InputStream input = + s3.getObject( + b -> b.bucket(BUCKET).key("flush-small"), + ResponseTransformer.toInputStream(Duration.ZERO))) { String read = new String(input.readAllBytes(), StandardCharsets.UTF_8); assertEquals( "Flushing a small frame of an S3OutputStream should not impact data written", @@ -152,7 +166,10 @@ public void testFlushLargeBuffer() throws IOException { } // Check we can re-read same content - try (InputStream input = s3.getObject(b -> b.bucket(BUCKET).key("flush-large"))) { + try (InputStream input = + s3.getObject( + b -> b.bucket(BUCKET).key("flush-large"), + ResponseTransformer.toInputStream(Duration.ZERO))) { String read = new String(input.readAllBytes(), StandardCharsets.UTF_8); assertEquals( "Flushing a large frame of an S3OutputStream should not impact data written", diff --git a/versions.lock b/versions.lock index 58916d43ec6b..31898100aae0 100644 --- a/versions.lock +++ b/versions.lock @@ -344,36 +344,37 @@ org.slf4j:jul-to-slf4j:2.0.17 (2 constraints: c11bd27e) org.slf4j:slf4j-api:2.0.17 (68 constraints: 6cd32dae) org.threeten:threetenbp:1.6.9 (4 constraints: 2833ea68) org.xerial.snappy:snappy-java:1.1.10.8 (5 constraints: c146fa38) -software.amazon.awssdk:annotations:2.31.77 (29 constraints: 59bcb697) -software.amazon.awssdk:apache-client:2.31.77 (4 constraints: 112ac6e3) -software.amazon.awssdk:arns:2.31.77 (2 constraints: 23186ec1) -software.amazon.awssdk:auth:2.31.77 (5 constraints: 51384741) -software.amazon.awssdk:aws-core:2.31.77 (6 constraints: 044e1521) -software.amazon.awssdk:aws-query-protocol:2.31.77 (3 constraints: 5e2a08de) -software.amazon.awssdk:aws-xml-protocol:2.31.77 (2 constraints: 23186ec1) -software.amazon.awssdk:bom:2.31.77 (1 constraints: 7605b740) -software.amazon.awssdk:checksums:2.31.77 (4 constraints: 90363cf6) -software.amazon.awssdk:checksums-spi:2.31.77 (5 constraints: 754526bd) -software.amazon.awssdk:crt-core:2.31.77 (1 constraints: c60b9cf9) -software.amazon.awssdk:endpoints-spi:2.31.77 (5 constraints: 13413975) -software.amazon.awssdk:http-auth:2.31.77 (5 constraints: ad3fdf79) -software.amazon.awssdk:http-auth-aws:2.31.77 (5 constraints: a43f5e5d) -software.amazon.awssdk:http-auth-aws-eventstream:2.31.77 (2 constraints: 2f1957ff) -software.amazon.awssdk:http-auth-spi:2.31.77 (8 constraints: d86ccfdd) -software.amazon.awssdk:http-client-spi:2.31.77 (15 constraints: 86da4c2d) -software.amazon.awssdk:identity-spi:2.31.77 (9 constraints: 0f7d16c5) -software.amazon.awssdk:json-utils:2.31.77 (5 constraints: 833f973f) -software.amazon.awssdk:metrics-spi:2.31.77 (7 constraints: 44620c16) -software.amazon.awssdk:profiles:2.31.77 (8 constraints: 6f61f249) -software.amazon.awssdk:protocol-core:2.31.77 (5 constraints: 8f482f5b) -software.amazon.awssdk:regions:2.31.77 (7 constraints: 4c50bfb1) -software.amazon.awssdk:retries:2.31.77 (3 constraints: d5283128) -software.amazon.awssdk:retries-spi:2.31.77 (7 constraints: a554369f) -software.amazon.awssdk:s3:2.31.77 (4 constraints: e72f0cc1) -software.amazon.awssdk:sdk-core:2.31.77 (10 constraints: 9287ebec) -software.amazon.awssdk:sts:2.31.77 (2 constraints: d3114f15) -software.amazon.awssdk:third-party-jackson-core:2.31.77 (2 constraints: 951b30a8) -software.amazon.awssdk:utils:2.31.77 (26 constraints: 58849766) +software.amazon.awssdk:annotations:2.42.37 (30 constraints: 48cb1be0) +software.amazon.awssdk:apache-client:2.42.37 (4 constraints: 092a12e2) +software.amazon.awssdk:arns:2.42.37 (2 constraints: 1f1828c1) +software.amazon.awssdk:auth:2.42.37 (5 constraints: 4738643e) +software.amazon.awssdk:aws-core:2.42.37 (6 constraints: f84d7b1c) +software.amazon.awssdk:aws-query-protocol:2.42.37 (3 constraints: 582a2ddd) +software.amazon.awssdk:aws-xml-protocol:2.42.37 (2 constraints: 1f1828c1) +software.amazon.awssdk:bom:2.42.37 (1 constraints: 7405b840) +software.amazon.awssdk:checksums:2.42.37 (4 constraints: 883656f4) +software.amazon.awssdk:checksums-spi:2.42.37 (7 constraints: 6f622c0d) +software.amazon.awssdk:crt-core:2.42.37 (1 constraints: c40b9df9) +software.amazon.awssdk:endpoints-spi:2.42.37 (5 constraints: 09414072) +software.amazon.awssdk:http-auth:2.42.37 (5 constraints: a33ffc76) +software.amazon.awssdk:http-auth-aws:2.42.37 (5 constraints: 9a3f655a) +software.amazon.awssdk:http-auth-aws-eventstream:2.42.37 (2 constraints: 2b190fff) +software.amazon.awssdk:http-auth-spi:2.42.37 (8 constraints: c86c0fd5) +software.amazon.awssdk:http-client-spi:2.42.37 (15 constraints: 68da0709) +software.amazon.awssdk:identity-spi:2.42.37 (9 constraints: fd7c9bb9) +software.amazon.awssdk:json-utils:2.42.37 (5 constraints: 793fae3c) +software.amazon.awssdk:metrics-spi:2.42.37 (7 constraints: 3662850f) +software.amazon.awssdk:profiles:2.42.37 (8 constraints: 5f617a41) +software.amazon.awssdk:protocol-core:2.42.37 (5 constraints: 85483c58) +software.amazon.awssdk:regions:2.42.37 (7 constraints: 40501bad) +software.amazon.awssdk:retries:2.42.37 (3 constraints: cf284227) +software.amazon.awssdk:retries-spi:2.42.37 (7 constraints: 9754df98) +software.amazon.awssdk:s3:2.42.37 (4 constraints: e32f12c0) +software.amazon.awssdk:sdk-core:2.42.37 (10 constraints: 7e877bde) +software.amazon.awssdk:sts:2.42.37 (2 constraints: cf110715) +software.amazon.awssdk:third-party-jackson-core:2.42.37 (2 constraints: 911bdaa7) +software.amazon.awssdk:utils:2.42.37 (26 constraints: 2684ebff) +software.amazon.awssdk:utils-lite:2.42.37 (2 constraints: 9a1a0d72) software.amazon.eventstream:eventstream:1.0.1 (3 constraints: cd2e5385) ua.net.nlp:morfologik-ukrainian-search:4.9.1 (1 constraints: d5126e1e) @@ -463,5 +464,5 @@ org.springframework.boot:spring-boot-starter-logging:2.7.13 (1 constraints: 6e13 org.springframework.boot:spring-boot-starter-web:2.7.13 (1 constraints: f30a39d6) org.testcontainers:testcontainers:1.20.4 (1 constraints: 3905313b) org.yaml:snakeyaml:1.30 (1 constraints: 0713d91f) -software.amazon.awssdk:url-connection-client:2.31.77 (2 constraints: 481f03f7) +software.amazon.awssdk:url-connection-client:2.42.37 (2 constraints: 461f04f7) software.amazon.ion:ion-java:1.0.2 (1 constraints: 720db831) diff --git a/versions.props b/versions.props index 9b94ad716dd4..e098e8c3eb83 100644 --- a/versions.props +++ b/versions.props @@ -85,4 +85,4 @@ org.semver4j:semver4j=5.8.0 org.slf4j:*=2.0.17 org.testcontainers:testcontainers*=1.20.4 org.xerial.snappy:snappy-java=1.1.10.8 -software.amazon.awssdk:*=2.31.77 +software.amazon.awssdk:*=2.42.37