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

Elek, Marton commented on HDDS-1356:
------------------------------------

Sure, we can postpone it unless we have a very quick fix.

I tried to check it but the fix is not obvious. While the server side can be 
fixed easily the exception itself is thrown by the dependency injection (CDI) 
and the real exception is a javax.enterprise.inject.CreationException.

I tried to adjust the exception mapping but didn't find an easy way to map this 
exception to a good HTTP response.

> Wrong response code in s3g in case of an invalid access key
> -----------------------------------------------------------
>
>                 Key: HDDS-1356
>                 URL: https://issues.apache.org/jira/browse/HDDS-1356
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>          Components: S3
>            Reporter: Elek, Marton
>            Priority: Major
>
> In case of a wrong aws credential the s3g returns with HTTP 500:
> {code}
> [hadoop@om-0 keytabs]$ aws s3api --endpoint=http://s3g-0.s3g:9878 
> create-bucket --bucket qwe
> An error occurred (500) when calling the CreateBucket operation (reached max 
> retries: 4): Internal Server Error
> {code}
> And throws an exception server side:
> {code}
> s3g-0 s3g 3ff4582bec94fee02ae4babcd4294c5a1c46cf7a6f750bfd5de4e894e41663c5, 
> signature=73ea5e939f47de1389e26624c91444d6b88fa70c64e5ee1e39e6804269736a99, 
> awsAccessKeyId=scm/[email protected]
> s3g-0 s3g         at 
> org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1511)
> s3g-0 s3g         at org.apache.hadoop.ipc.Client.call(Client.java:1457)
> s3g-0 s3g         at org.apache.hadoop.ipc.Client.call(Client.java:1367)
> s3g-0 s3g         at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:228)
> s3g-0 s3g         at 
> org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:116)
> s3g-0 s3g         at com.sun.proxy.$Proxy77.submitRequest(Unknown Source)
> s3g-0 s3g         at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown 
> Source)
> s3g-0 s3g         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> s3g-0 s3g         at java.lang.reflect.Method.invoke(Method.java:498)
> s3g-0 s3g         at 
> org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:422)
> s3g-0 s3g         at 
> org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:165)
> s3g-0 s3g         at 
> org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:157)
> s3g-0 s3g         at 
> org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95)
> s3g-0 s3g         at 
> org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:359)
> s3g-0 s3g         at com.sun.proxy.$Proxy77.submitRequest(Unknown Source)
> s3g-0 s3g         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method)
> s3g-0 s3g         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> s3g-0 s3g         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> s3g-0 s3g         at java.lang.reflect.Method.invoke(Method.java:498)
> s3g-0 s3g         at 
> org.apache.hadoop.hdds.tracing.TraceAllMethod.invoke(TraceAllMethod.java:66)
> s3g-0 s3g         at com.sun.proxy.$Proxy77.submitRequest(Unknown Source)
> s3g-0 s3g         at 
> org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.submitRequest(OzoneManagerProtocolClientSideTranslatorPB.java:284)
> s3g-0 s3g         at 
> org.apache.hadoop.ozone.om.protocolPB.OzoneManagerProtocolClientSideTranslatorPB.getServiceList(OzoneManagerProtocolClientSideTranslatorPB.java:1097)
> s3g-0 s3g         at 
> org.apache.hadoop.ozone.client.rpc.RpcClient.getScmAddressForClient(RpcClient.java:219)
> s3g-0 s3g         at 
> org.apache.hadoop.ozone.client.rpc.RpcClient.<init>(RpcClient.java:148)
> s3g-0 s3g         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> s3g-0 s3g         at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> s3g-0 s3g         at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> s3g-0 s3g         at 
> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> s3g-0 s3g         at 
> org.apache.hadoop.ozone.client.OzoneClientFactory.getClientProtocol(OzoneClientFactory.java:291)
> s3g-0 s3g         at 
> org.apache.hadoop.ozone.client.OzoneClientFactory.getClient(OzoneClientFactory.java:92)
> s3g-0 s3g         at 
> org.apache.hadoop.ozone.s3.OzoneClientProducer.getClient(OzoneClientProducer.java:108)
> s3g-0 s3g         at 
> org.apache.hadoop.ozone.s3.OzoneClientProducer.createClient(OzoneClientProducer.java:68)
> s3g-0 s3g         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method)
> s3g-0 s3g         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> s3g-0 s3g         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> s3g-0 s3g         at java.lang.reflect.Method.invoke(Method.java:498)
> s3g-0 s3g         at 
> org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:88)
> s3g-0 s3g         ... 92 more
> {code}
> The right response would be something like this:
> {code}
> aws s3api create-bucket --bucket qweqweqwe123123qwesdi
> An error occurred (InvalidAccessKeyId) when calling the CreateBucket 
> operation: The AWS Access Key Id you provided does not exist in our records.
> {code}
> (HTTP 403)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to