Hi guys,

About the job urls, I found three more non-functional links. They are links
for jobmanager.(err/log/out) in the page of node container logs, like
http://hadoopworker001:8042/node/containerlogs/container_xxx/user_xxx.

Their original urls are like this <a href="
/node/containerlogs/container_xxx/user_xxx/jobmanager.err/?start=-4096
<http://hadoopworker1677-sjc1.prod.uber.internal:8042/node/containerlogs/container_e535_1521074600645_578887_01_000001/kedar/jobmanager.err/?start=-4096>
">jobmanager.err : Total file length is 0 bytes.</a>. As there is no node
host and port info in this uri, so when doing the rewrite, it can't be
written to the right url. Any suggestion about how to fix this issue?

Another interesting finding is, actually we have the node host and port
info in the web page url which contains these links, which is like "
https://knox/gateway/sandbox/yarn/nodemanager/node/containerlogs/container_xxx/user_xxx?scheme=http&host=hadoopworker001-sjc1.prod.uber.internal&port=8042";.
So that means if there is a way we can get the parameter from the root url
when rewrite some other urls, we can probably fix that problem.

Do you have some suggestion? Appreciated.

Best,
Guang

On Mon, Mar 5, 2018 at 5:07 PM, Guang Yang <[email protected]> wrote:

> Any suggestion, guys?
>
> On Fri, Mar 2, 2018 at 1:28 PM, Guang Yang <[email protected]> wrote:
>
>> Hi Sandeep,
>>
>> Thanks for looking into it.
>>
>> Yes, I tried that before, the value can be replaced correctly, but the
>> webpage is just stuck there, no redirect happens.
>>
>> The result in html is <meta http-equiv="refresh"
>> content="https://host:port/something";>, which however, should be <meta
>> http-equiv="refresh" content="*1; url=*https://host:port/something";>. It
>> seems the html meta refresh format requires *'1; url='*, where the 1
>> means stop for 1 seconds before refresh.
>>
>> Thanks,
>> Guang
>>
>> On Fri, Mar 2, 2018 at 6:49 AM, Sandeep Moré <[email protected]>
>> wrote:
>>
>>> Hello Guang,
>>>
>>> This does look like a bug, after some digging it appears it was as a
>>> result of KNOX-973.
>>>
>>> Have you tried using
>>>
>>> <rewrite template="{$frontend[url]}/jobstoryui/jobstory/jobhistory/lo
>>> gs/{**}"/>
>>>
>>> I am curious to see what you get.
>>>
>>>
>>> Best,
>>> Sandeep
>>>
>>>
>>>
>>>
>>> On Thu, Mar 1, 2018 at 4:30 PM, Guang Yang <[email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm currently working on the Map Reduce Job History UI rewrite rules,
>>>> and found several potential bugs here.
>>>>
>>>> <rewrite template="1; url=/gateway/jobstoryui/jobsto
>>>> ry/jobhistory/logs/{**}"/>
>>>> For this rewrite template
>>>> <https://github.com/apache/knox/blob/master/gateway-service-definitions/src/main/resources/services/yarnui/2.7.0/rewrite.xml#L104>,
>>>> let's not say what the `jobstory` is here for now. I think the target
>>>> url should start with something like {$frontend[url]}, just like other OUT
>>>> rules, because the previous one doesn't specify the deployment/environment
>>>> after word `gateway`.
>>>>
>>>> But after I change it to <rewrite template="1; url={$frontend[url]}/
>>>> jobstoryui/jobstory/jobhistory/logs/{**}"/>, the variable
>>>> {$frontend[url]} is not replaced with the right value, it's just literal
>>>> `{$frontend[url]}` in the target url. And I found that only when the
>>>> variable following the double quotes, it can be replaced, otherwise it just
>>>> stays there as literal text.
>>>>
>>>> My question is, anyone knows how to fix this bug? Or how to get 
>>>> {$frontend[url]}
>>>> replaced with right value even it's not at the beginning of the template?
>>>>
>>>> Btw, I think the right template should be <rewrite template="1;
>>>> url={$frontend[url]}/jobhistory/joblogs/{**}"/>.
>>>>
>>>> Appreciate for any help.
>>>>
>>>> Thanks,
>>>> Guang
>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to