I see what's going on.
This is going to take some time to debug and get a fix in place.

Thanks for reporting this Mohammad!

On Tue, Nov 29, 2016 at 10:07 PM, larry mccay <[email protected]> wrote:

> Thanks for the note, Mohammad.
>
> Let me play around with it and see what is going on there.
> Will probably get back to you tomorrow about it.
>
> On Tue, Nov 29, 2016 at 8:02 PM, Mohammad Islam <[email protected]>
> wrote:
>
>> Hi,
>>
>> I set  "default.app.topology.name" in gateway-site.xml  to "uber" (my
>> default topology name).
>> It worked fine if I gave the full URL. The command looks like this "curl
>>  http://<KNOX_GW_URL>/*gateway/uber/*webhdfs/v1/?op=GETHOMEDIRECTORY'".
>>
>> However, when I tried with command "curl  
>> http://<KNOX_GW_URL>/webhdfs/v1/?op=GETHOMEDIRECTORY'".
>> I got the HTTP error code 500. I looked into gateway.log file and found
>> quite a few error related to rewrite. The exact error messages are shown
>> below:
>>
>> *Error message*
>>
>> *2016-11-30 00:39:51,565 ERROR hadoop.gateway
>> (UrlRewriteProcessor.java:rewrite(169)) - Failed to rewrite URL:
>> http://<KNOX_GW_URL>/webhdfs/v1/?op=GETHOMEDIRECTORY, direction: IN via
>> rule: WEBHDFS/webhdfs/inbound/namenode/root, status: FAILURE*
>> *2016-11-30 00:39:51,565 ERROR hadoop.gateway
>> (UrlRewriteProcessor.java:rewrite(169)) - Failed to rewrite URL:
>> http://<KNOX_GW_URL>/webhdfs/v1/?op=GETHOMEDIRECTORY, direction: IN via
>> rule: WEBHDFS/webhdfs/inbound/namenode/root, status: FAILURE*
>>
>>
>> After that, I modified the webhdfs/2.4.0/rewrite.xml by rewriting the
>> following pattern and it worked for short URL but long URL faces the same
>> issue.
>>
>> *Original*:
>>
>> <rule dir="IN" name="WEBHDFS/webhdfs/inbound/namenode/root" pattern=
>> "*://*:**/**/*webhdfs/{version}/?{**}">
>>         <rewrite template="{$serviceUrl[WEBHDFS]}/{version}/?{**}"/>
>>     </rule>
>>
>> *Modified* :
>>
>>     <rule dir="IN" name="WEBHDFS/webhdfs/inbound/namenode/root"
>> pattern="*://*:*/webhdfs/{version}/?{**}">
>>         <rewrite template="{$serviceUrl[WEBHDFS]}/{version}/?{**}"/>
>>     </rule>
>>
>>
>>
>> Overall, the rewrite pattern may be the issue. We will need to support
>> for both short and long URL. May be, we can add multiple rewrite rules for
>> each route in service.xml.
>> Is there any other cleaner way which may work for all cases such as
>> webhdfs, yarn, hive, UIs etc?
>>
>> Regards,
>> Mohammad
>>
>>
>>
>>
>>
>>
>

Reply via email to