Zhijie Shen commented on YARN-3207:

bq. was just thinking in terms of any scenario to store different values in 
primary filter(just like a tag) and other info(more detailed)

In this case, according to the code path, other info decides the result if the 
key appears in both sides, but the value differs. Thanks, Naga for raising this 
special case explicitly.

> secondary filter matches entites which do not have the key being filtered for.
> ------------------------------------------------------------------------------
>                 Key: YARN-3207
>                 URL: https://issues.apache.org/jira/browse/YARN-3207
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: timelineserver
>            Reporter: Prakash Ramachandran
>            Assignee: Zhijie Shen
>         Attachments: YARN-3207.1.patch
> in the leveldb implementation of the TimelineStore the secondary filter 
> matches entities where the key being searched for is not present.
> ex query from tez ui
> http://uvm:8188/ws/v1/timeline/TEZ_DAG_ID/?limit=1&secondaryFilter=foo:bar
> will match and return the entity even though there is no entity with 
> otherinfo.foo defined.
> the issue seems to be in 
> {code:title=LeveldbTimelineStore:675}
> if (vs != null && !vs.contains(filter.getValue())) {
>   filterPassed = false;
>   break;
> }
> {code}
> this should be IMHO
> vs == null || !vs.contains(filter.getValue())

This message was sent by Atlassian JIRA

Reply via email to