You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by GitBox <gi...@apache.org> on 2022/02/09 17:30:19 UTC

[GitHub] [ozone] adoroszlai opened a new pull request #3066: HDDS-6257. Wrong stack trace for S3 errors

adoroszlai opened a new pull request #3066:
URL: https://github.com/apache/ozone/pull/3066


   ## What changes were proposed in this pull request?
   
   S3 Gateway logs exception in `S3ErrorTable.newError`, but the stack trace is wrong.
   
   ```
   s3g_1       | <Error>
   s3g_1       |   <Code>InvalidBucketName</Code>
   s3g_1       |   <Message>The specified bucket is not valid.</Message>
   s3g_1       |   <Resource>a_b_c</Resource>
   s3g_1       |   <RequestId/>
   s3g_1       | </Error>
   s3g_1       |
   s3g_1       | org.apache.hadoop.ozone.s3.exception.OS3Exception
   s3g_1       |    at org.apache.hadoop.ozone.s3.exception.S3ErrorTable.<clinit>(S3ErrorTable.java:88)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.EndpointBase.getBucket(EndpointBase.java:91)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.BucketEndpoint.head(BucketEndpoint.java:294)
   ```
   
   ```
   s3g_1       | <Error>
   s3g_1       |   <Code>NoSuchBucket</Code>
   s3g_1       |   <Message>The specified bucket does not exist</Message>
   s3g_1       |   <Resource>dont-exist</Resource>
   s3g_1       |   <RequestId/>
   s3g_1       | </Error>
   s3g_1       |
   s3g_1       | org.apache.hadoop.ozone.s3.exception.OS3Exception
   s3g_1       |    at org.apache.hadoop.ozone.s3.exception.S3ErrorTable.<clinit>(S3ErrorTable.java:51)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.EndpointBase.getBucket(EndpointBase.java:91)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.BucketEndpoint.head(BucketEndpoint.java:294)
   ```
   
   Note that both errors have the same stack trace.  It always points to the operation that first accessed `S3ErrorTable` class (i.e. the one that triggered the first error, in this case a `head-bucket` operation).
   
   This change fixes the stack trace by passing the original exception, if available, to the method which logs, instead of using the predefined `OS3Exception`'s stack trace.
   
   https://issues.apache.org/jira/browse/HDDS-6257
   
   ## How was this patch tested?
   
   Set log level to debug:
   
   ```
   log4j.logger.org.apache.hadoop.ozone.s3.exception.S3ErrorTable=DEBUG
   ```
   
   Tested with the following commands.  Verified that stack traces are unique.
   
   ```
   aws s3api --endpoint http://s3g:9878 head-bucket --bucket dont-exist
   ```
   
   ```
   s3g_1       | 2022-02-09 14:41:46,981 [qtp690052870-22] DEBUG exception.S3ErrorTable: <?xml version="1.0" encoding="UTF-8"?>
   s3g_1       | <Error>
   s3g_1       |   <Code>NoSuchBucket</Code>
   s3g_1       |   <Message>The specified bucket does not exist</Message>
   s3g_1       |   <Resource>dont-exist</Resource>
   s3g_1       |   <RequestId/>
   s3g_1       | </Error>
   s3g_1       |
   s3g_1       | BUCKET_NOT_FOUND org.apache.hadoop.ozone.om.exceptions.OMException: Bucket not found
   s3g_1       |    at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.handleError(OzoneManagerProtocolClientSideTranslatorPB.java:654)
   s3g_1       |    at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.getBucketInfo(OzoneManagerProtocolClientSideTranslatorPB.java:503)
   s3g_1       |    at org.apache.hadoop.ozone.client.rpc.RpcClient.getBucketDetails(RpcClient.java:771)
   s3g_1       |    at org.apache.hadoop.ozone.client.OzoneVolume.getBucket(OzoneVolume.java:406)
   s3g_1       |    at org.apache.hadoop.ozone.client.ObjectStore.getS3Bucket(ObjectStore.java:122)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.EndpointBase.getBucket(EndpointBase.java:89)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.BucketEndpoint.head(BucketEndpoint.java:293)
   ```
   
   ```
   aws s3api --endpoint http://s3g:9878 delete-bucket --bucket dont-exist
   ```
   
   ```
   s3g_1       | 2022-02-09 14:42:29,766 [qtp690052870-16] DEBUG exception.S3ErrorTable: <?xml version="1.0" encoding="UTF-8"?>
   s3g_1       | <Error>
   s3g_1       |   <Code>NoSuchBucket</Code>
   s3g_1       |   <Message>The specified bucket does not exist</Message>
   s3g_1       |   <Resource>dont-exist</Resource>
   s3g_1       |   <RequestId/>
   s3g_1       | </Error>
   s3g_1       |
   s3g_1       | BUCKET_NOT_FOUND org.apache.hadoop.ozone.om.exceptions.OMException: Bucket not exists
   s3g_1       |    at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.handleError(OzoneManagerProtocolClientSideTranslatorPB.java:654)
   s3g_1       |    at org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.deleteBucket(OzoneManagerProtocolClientSideTranslatorPB.java:856)
   s3g_1       |    at org.apache.hadoop.ozone.client.rpc.RpcClient.deleteBucket(RpcClient.java:756)
   s3g_1       |    at org.apache.hadoop.ozone.client.OzoneVolume.deleteBucket(OzoneVolume.java:444)
   s3g_1       |    at org.apache.hadoop.ozone.client.ObjectStore.deleteS3Bucket(ObjectStore.java:133)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.EndpointBase.deleteS3Bucket(EndpointBase.java:140)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.BucketEndpoint.delete(BucketEndpoint.java:308)
   ```
   
   ```
   aws s3api --endpoint http://s3g:9878 create-bucket --bucket 'a_b_c'
   ```
   
   ```
   s3g_1       | 2022-02-09 14:43:02,028 [qtp690052870-17] DEBUG exception.S3ErrorTable: <?xml version="1.0" encoding="UTF-8"?>
   s3g_1       | <Error>
   s3g_1       |   <Code>InvalidBucketName</Code>
   s3g_1       |   <Message>The specified bucket is not valid.</Message>
   s3g_1       |   <Resource>a_b_c</Resource>
   s3g_1       |   <RequestId/>
   s3g_1       | </Error>
   s3g_1       |
   s3g_1       | INVALID_BUCKET_NAME org.apache.hadoop.ozone.om.exceptions.OMException: Bucket or Volume name has an unsupported character : _
   s3g_1       |    at org.apache.hadoop.ozone.client.rpc.RpcClient.verifyBucketName(RpcClient.java:582)
   s3g_1       |    at org.apache.hadoop.ozone.client.rpc.RpcClient.createBucket(RpcClient.java:521)
   s3g_1       |    at org.apache.hadoop.ozone.client.rpc.RpcClient.createBucket(RpcClient.java:512)
   s3g_1       |    at org.apache.hadoop.ozone.client.OzoneVolume.createBucket(OzoneVolume.java:385)
   s3g_1       |    at org.apache.hadoop.ozone.client.ObjectStore.createS3Bucket(ObjectStore.java:118)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.EndpointBase.createS3Bucket(EndpointBase.java:119)
   s3g_1       |    at org.apache.hadoop.ozone.s3.endpoint.BucketEndpoint.put(BucketEndpoint.java:240)
   ```
   
   ```
   ozone sh bucket create /s3v/bucket1
   ozone sh key put /s3v/bucket1/key1 /etc/passwd
   aws s3api --endpoint http://s3g:9878 get-object --bucket bucket1 --key key1 --range bytes=10000-10000 /dev/null
   ```
   
   ```
   s3g_1       | 2022-02-09 14:56:33,771 [qtp690052870-22] DEBUG exception.S3ErrorTable: <?xml version="1.0" encoding="UTF-8"?>
   s3g_1       | <Error>
   s3g_1       |   <Code>InvalidRange</Code>
   s3g_1       |   <Message>The requested range is not satisfiable</Message>
   s3g_1       |   <Resource>bytes=10000-10000</Resource>
   s3g_1       |   <RequestId/>
   s3g_1       | </Error>
   ```
   
   CI:
   https://github.com/adoroszlai/hadoop-ozone/actions/runs/1818745426


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org


[GitHub] [ozone] adoroszlai merged pull request #3066: HDDS-6257. Wrong stack trace for S3 errors

Posted by GitBox <gi...@apache.org>.
adoroszlai merged pull request #3066:
URL: https://github.com/apache/ozone/pull/3066


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org


[GitHub] [ozone] adoroszlai commented on pull request #3066: HDDS-6257. Wrong stack trace for S3 errors

Posted by GitBox <gi...@apache.org>.
adoroszlai commented on pull request #3066:
URL: https://github.com/apache/ozone/pull/3066#issuecomment-1035257898


   Thanks @sodonnel for the review.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org