[ https://issues.apache.org/jira/browse/YARN-3207?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14325122#comment-14325122 ]
Naganarasimha G R commented on YARN-3207: ----------------------------------------- Hi [~zjshen], Also can there be a possibility that a given secondary filter key is present in both other info and primary filters, but value is present only in primary filters ? In that case below code returns false. {code} Object v = entity.getOtherInfo().get(filter.getName()); if (v == null) { Set<Object> vs = entity.getPrimaryFilters() .get(filter.getName()); if (vs != null && !vs.contains(filter.getValue())) { filterPassed = false; break; } } else if (!v.equals(filter.getValue())) { filterPassed = false; break; } {code} Willing to work on this if you have not already started . > 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 > > 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 (v6.3.4#6332)