[
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]