[ 
https://issues.apache.org/jira/browse/KNOX-1023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

vaibhav beriwala updated KNOX-1023:
-----------------------------------
    Description: 
When nodemanager links are accessed through YARNUI service, it requires the 
host and port to be appended in the URI , something like: 


{code:java}
https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user?host=nm-host&port=8042
{code}


When I'm coming from the RM page, this link is rendered as an absolute one, so 
the rewrite rule works fine and appends the host and port. However, when I'm on 
the NM page itself, the URLs are not absolute(the URL's on NM page are 
relative), so a different rewrite rule applies:


{code:java}
DEBUG hadoop.gateway (UrlRewriteProcessor.java:rewrite(164)) - Rewrote URL: 
/node/containerlogs/container_e01_1498485266952_0006_01_000001/hiyer 
qa3july/stderr/?start=-4096, direction: OUT via implicit rule: 
YARNUI/yarn/outbound/node to URL: 
https://host:8443/gateway/sandbox/yarn/node/containerlogs/container_e01_1498485266952_0006_01_000001/user/stderr

{code}

As you can see, this link does not contain the host=nm-host&port=8042 at the 
end of query string, so it does not work. This affects log links for running 
tasks, and links for the nodemanager itself.

So, the links on NM page of type 
{code:java}
href=/syslog
{code}
 gets transformed to 
{code:java}
https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user/syslog

{code}

whereas it should have been transformed to 

{code:java}
https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user/syslog?host=nm-host&port=8042
{code}


One possible solution I could think of is appending the query string of the 
*current* page to the link, but I couldn't see how to do that in a rewrite rule.

Also, if you can provide some code pointers I may look into it. :)


  was:
When nodemanager links are accessed through YARNUI service, it requires the 
host and port to be appended in the URI , something like: 


{code:java}
https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user?host=nm-host&port=8042
{code}


When I'm coming from the RM page, this link is rendered as an absolute one, so 
the rewrite rule works fine and appends the host and port. However, when I'm on 
the NM page itself, the URLs are not absolute(the URL's on NM page are 
relative), so a different rewrite rule applies:


{code:java}
DEBUG hadoop.gateway (UrlRewriteProcessor.java:rewrite(164)) - Rewrote URL: 
/node/containerlogs/container_e01_1498485266952_0006_01_000001/hiyer 
qa3july/stderr/?start=-4096, direction: OUT via implicit rule: 
YARNUI/yarn/outbound/node to URL: 
https://host:8443/gateway/sandbox/yarn/node/containerlogs/container_e01_1498485266952_0006_01_000001/user/stderr

{code}

As you can see, this link does not contain the host=nm-host&port=8042 at the 
end of query string, so it does not work. This affects log links for running 
tasks, and links for the nodemanager itself.

So, the links on NM page of type 
{code:java}
href=/syslog
{code}
 gets transformed to 
{code:java}
https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user/syslog

{code}

whereas it should have been transformed to 

{code:java}
https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user/syslog?host=nm-host&port=8042
{code}


One possible solution I could think of is appending the query string of the 
*current* page to the link, but I couldn't see how to do that in a rewrite rule.



> nodemanager log links for a running job not working through YARNUI
> ------------------------------------------------------------------
>
>                 Key: KNOX-1023
>                 URL: https://issues.apache.org/jira/browse/KNOX-1023
>             Project: Apache Knox
>          Issue Type: Bug
>    Affects Versions: 0.13.0
>            Reporter: vaibhav beriwala
>             Fix For: 0.13.0
>
>
> When nodemanager links are accessed through YARNUI service, it requires the 
> host and port to be appended in the URI , something like: 
> {code:java}
> https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user?host=nm-host&port=8042
> {code}
> When I'm coming from the RM page, this link is rendered as an absolute one, 
> so the rewrite rule works fine and appends the host and port. However, when 
> I'm on the NM page itself, the URLs are not absolute(the URL's on NM page are 
> relative), so a different rewrite rule applies:
> {code:java}
> DEBUG hadoop.gateway (UrlRewriteProcessor.java:rewrite(164)) - Rewrote URL: 
> /node/containerlogs/container_e01_1498485266952_0006_01_000001/hiyer 
> qa3july/stderr/?start=-4096, direction: OUT via implicit rule: 
> YARNUI/yarn/outbound/node to URL: 
> https://host:8443/gateway/sandbox/yarn/node/containerlogs/container_e01_1498485266952_0006_01_000001/user/stderr
> {code}
> As you can see, this link does not contain the host=nm-host&port=8042 at the 
> end of query string, so it does not work. This affects log links for running 
> tasks, and links for the nodemanager itself.
> So, the links on NM page of type 
> {code:java}
> href=/syslog
> {code}
>  gets transformed to 
> {code:java}
> https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user/syslog
> {code}
> whereas it should have been transformed to 
> {code:java}
> https://host:8443/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_e02_1498543212255_0001_01_000001/user/syslog?host=nm-host&port=8042
> {code}
> One possible solution I could think of is appending the query string of the 
> *current* page to the link, but I couldn't see how to do that in a rewrite 
> rule.
> Also, if you can provide some code pointers I may look into it. :)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to