[ 
https://issues.apache.org/jira/browse/HADOOP-19654?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18020961#comment-18020961
 ] 

ASF GitHub Bot commented on HADOOP-19654:
-----------------------------------------

steveloughran commented on PR #7882:
URL: https://github.com/apache/hadoop/pull/7882#issuecomment-3304013014

   I've attached a log of a test run against an s3 express bucket where the 
test `ITestAWSStatisticCollection.testSDKMetricsCostOfGetFileStatusOnFile()` is 
failing because the AWS SDK stats report 2 http requests for the probe. I'd 
thought it was create-session related but it isn't: it looks like somehow the 
stream is broken. This happens reliably on every test runs.
   
   
   The relevant stuff is at line 564 where a HEAD request fails because the 
stream is broken
   "end of stream".
   
   ```
   2025-09-17 18:43:49,313 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "HEAD /test/testSDKMetricsCostOfGetFileStatusOnFile 
HTTP/1.1[\r][\n]"
   2025-09-17 18:43:49,313 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "Host: 
stevel--usw2-az1--x-s3.s3express-usw2-az1.us-west-2.amazonaws.com[\r][\n]"
   2025-09-17 18:43:49,313 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "amz-sdk-invocation-id: 
1804bbcd-04de-cba8-8055-6a09917ca20d[\r][\n]"
   2025-09-17 18:43:49,313 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "amz-sdk-request: attempt=1; max=3[\r][\n]"
   2025-09-17 18:43:49,313 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "Authorization: AWS4-HMAC-SHA256 
Credential=AKIA/20250917/us-west-2/s3express/aws4_request, 
SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;host;referer;x-amz-content-sha256;x-amz-date,
 
Signature=228a46bb1d008468d38afd0da0ed7b4c354ab12631a63bf4283cb23dc02527a3[\r][\n]"
   2025-09-17 18:43:49,313 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "Referer: 
https://audit.example.org/hadoop/1/op_get_file_status/cf739331-1f2e-42dd-a5d9-f564d6023a23-00000008/?op=op_get_file_status&p1=test/testSDKMetricsCostOfGetFileStatusOnFile&pr=stevel&ps=282e3c5d-c1bd-4859-94b9-82e77ff225d1&id=cf739331-1f2e-42dd-a5d9-f564d6023a23-00000008&t0=1&fs=cf739331-1f2e-42dd-a5d9-f564d6023a23&t1=1&ts=1758131029311[\r][\n]";
   2025-09-17 18:43:49,313 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "User-Agent: Hadoop 3.5.0-SNAPSHOT aws-sdk-java/2.33.8 
md/io#sync md/http#Apache ua/2.1 api/S3#2.33.x os/Mac_OS_X#15.6.1 
lang/java#17.0.8 md/OpenJDK_64-Bit_Server_VM#17.0.8+7-LTS 
md/vendor#Amazon.com_Inc. md/en_GB m/F,G hll/cross-region[\r][\n]"
   2025-09-17 18:43:49,313 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "x-amz-content-sha256: UNSIGNED-PAYLOAD[\r][\n]"
   2025-09-17 18:43:49,314 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "X-Amz-Date: 20250917T174349Z[\r][\n]"
   2025-09-17 18:43:49,314 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "Connection: Keep-Alive[\r][\n]"
   2025-09-17 18:43:49,314 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-1 >> "[\r][\n]"
   2025-09-17 18:43:49,314 [setup] DEBUG http.wire (Wire.java:wire(87)) - 
http-outgoing-1 << "end of stream"
   2025-09-17 18:43:49,314 [setup] DEBUG awssdk.request 
(LoggerAdapter.java:debug(125)) - Retryable error detected. Will retry in 51ms. 
Request attempt number 1
   software.amazon.awssdk.core.exception.SdkClientException: Unable to execute 
HTTP request: The target server failed to respond
        at 
software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:130)
        at 
software.amazon.awssdk.core.exception.SdkClientException.create(SdkClientException.java:47)
   
   ```
   
   The second request always works.
   ```
   2025-09-17 18:43:49,672 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "HEAD /test/testSDKMetricsCostOfGetFileStatusOnFile 
HTTP/1.1[\r][\n]"
   2025-09-17 18:43:49,673 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "Host: 
stevel--usw2-az1--x-s3.s3express-usw2-az1.us-west-2.amazonaws.com[\r][\n]"
   2025-09-17 18:43:49,673 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "amz-sdk-invocation-id: 
1804bbcd-04de-cba8-8055-6a09917ca20d[\r][\n]"
   2025-09-17 18:43:49,673 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "amz-sdk-request: attempt=2; max=3[\r][\n]"
   2025-09-17 18:43:49,673 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "Authorization: AWS4-HMAC-SHA256 
Credential=AKIA/20250917/us-west-2/s3express/aws4_request, 
SignedHeaders=amz-sdk-invocation-id;amz-sdk-request;host;referer;x-amz-content-sha256;x-amz-date,
 
Signature=920d981fad319228c969f5df7f5c1a3c7e4d3c0e2f45ff53bba73e6cf47c5871[\r][\n]"
   2025-09-17 18:43:49,673 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "Referer: 
https://audit.example.org/hadoop/1/op_get_file_status/cf739331-1f2e-42dd-a5d9-f564d6023a23-00000008/?op=op_get_file_status&p1=test/testSDKMetricsCostOfGetFileStatusOnFile&pr=stevel&ps=282e3c5d-c1bd-4859-94b9-82e77ff225d1&id=cf739331-1f2e-42dd-a5d9-f564d6023a23-00000008&t0=1&fs=cf739331-1f2e-42dd-a5d9-f564d6023a23&t1=1&ts=1758131029311[\r][\n]";
   2025-09-17 18:43:49,673 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "User-Agent: Hadoop 3.5.0-SNAPSHOT aws-sdk-java/2.33.8 
md/io#sync md/http#Apache ua/2.1 api/S3#2.33.x os/Mac_OS_X#15.6.1 
lang/java#17.0.8 md/OpenJDK_64-Bit_Server_VM#17.0.8+7-LTS 
md/vendor#Amazon.com_Inc. md/en_GB m/F,G hll/cross-region[\r][\n]"
   2025-09-17 18:43:49,673 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "x-amz-content-sha256: UNSIGNED-PAYLOAD[\r][\n]"
   2025-09-17 18:43:49,673 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "X-Amz-Date: 20250917T174349Z[\r][\n]"
   2025-09-17 18:43:49,674 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "Connection: Keep-Alive[\r][\n]"
   2025-09-17 18:43:49,674 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 >> "[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "HTTP/1.1 200 OK[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "server: AmazonS3[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "x-amz-request-id: 
01869434dd00019958c6871b05090b3f875a3c90[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "x-amz-id-2: 9GqfbNyMyUs6[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "etag: "6036aaaf62444466bf0a21cc7518f738"[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "accept-ranges: bytes[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "last-modified: Wed, 17 Sep 2025 17:43:49 GMT[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "x-amz-storage-class: EXPRESS_ONEZONE[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "content-type: application/octet-stream[\r][\n]"
   2025-09-17 18:43:49,859 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "x-amz-server-side-encryption: AES256[\r][\n]"
   2025-09-17 18:43:49,860 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "content-length: 0[\r][\n]"
   2025-09-17 18:43:49,860 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "x-amz-expiration: NotImplemented[\r][\n]"
   2025-09-17 18:43:49,860 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "date: Wed, 17 Sep 2025 17:43:48 GMT[\r][\n]"
   2025-09-17 18:43:49,860 [setup] DEBUG http.wire (Wire.java:wire(73)) - 
http-outgoing-2 << "[\r][\n]"
   2025-09-17 18:43:49,860 [setup] DEBUG awssdk.request 
(LoggerAdapter.java:debug(105)) - Received successful response: 200, Request 
ID: 
   ```
   
   Either the request is being rejected (why?) or the connection has gone 
stale. But why should it happen at exactly the same place on every single test 
run?
   
   
   
[org.apache.hadoop.fs.s3a.statistics.ITestAWSStatisticCollection-output.txt](https://github.com/user-attachments/files/22391405/org.apache.hadoop.fs.s3a.statistics.ITestAWSStatisticCollection-output.txt)
   




> Upgrade AWS SDK to 2.33.x
> -------------------------
>
>                 Key: HADOOP-19654
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19654
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: build, fs/s3
>    Affects Versions: 3.5.0
>            Reporter: Steve Loughran
>            Assignee: Steve Loughran
>            Priority: Major
>              Labels: pull-request-available
>
> Upgrade to a recent version of 2.33.x or later while off the critical path of 
> things.
> HADOOP-19485 froze the sdk at a version which worked with third party stores. 
> Apparently the new version works; early tests show that Bulk Delete calls 
> with third party stores complain about lack of md5 headers, so some tuning is 
> clearly going to be needed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to