You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-issues@hadoop.apache.org by "Elek, Marton (JIRA)" <ji...@apache.org> on 2019/04/01 12:49:00 UTC

[jira] [Commented] (HDDS-1356) Wrong response code in s3g in case of an invalid access key

    [ 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/om-0.om.perf.svc.cluster.local@EXAMPLE.CO
> 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: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org