> On Oct. 17, 2024, 5:17 p.m., Abhay Kulkarni wrote:
> > Added a minor comment to the test code. It looks good overall. However, it 
> > is not clear how and where the dedupTags() is called multiple times during 
> > the initialization of the plugin as described in the original description 
> > of the JIRA.
> 
> Madhan Neethiraj wrote:
>     I saw this issue in Ranger admin while retrieving policies for a given 
> resource, from RangerAdminTagEnricher.enrich(). Here is the stack from 
> jstack. RangerTagEnricher.setServiceTags() calls dedupTags() on a ServiceTags 
> instance that is already deduped!
>     
>     "http-nio-6080-exec-8" #40 daemon prio=5 os_prio=0 tid=0x0000ffffa5212000 
> nid=0x15d1 runnable [0x0000ffff7b3f9000]
>        java.lang.Thread.State: RUNNABLE
>             at 
> org.apache.ranger.plugin.util.ServiceTags.dedupTags(ServiceTags.java:283)
>             at 
> org.apache.ranger.plugin.contextenricher.RangerTagEnricher.setServiceTags(RangerTagEnricher.java:322)
>             at 
> org.apache.ranger.plugin.contextenricher.RangerTagEnricher.setServiceTags(RangerTagEnricher.java:290)
>             at 
> org.apache.ranger.common.RangerAdminTagEnricher.refreshTagsIfNeeded(RangerAdminTagEnricher.java:164)
>             - locked <0x00000000f8a29400> (a 
> org.apache.ranger.common.RangerAdminTagEnricher)
>             at 
> org.apache.ranger.common.RangerAdminTagEnricher.enrich(RangerAdminTagEnricher.java:105)
>             at 
> org.apache.ranger.plugin.service.RangerDefaultRequestProcessor.enrich(RangerDefaultRequestProcessor.java:158)
>             at 
> org.apache.ranger.plugin.service.RangerDefaultRequestProcessor.preProcess(RangerDefaultRequestProcessor.java:137)
>             at 
> org.apache.ranger.biz.RangerPolicyAdminImpl.getMatchingPolicies(RangerPolicyAdminImpl.java:647)

Got it.


> On Oct. 17, 2024, 5:17 p.m., Abhay Kulkarni wrote:
> > agents-common/src/test/java/org/apache/ranger/plugin/util/TestServiceTags.java
> > Lines 85 (patched)
> > <https://reviews.apache.org/r/75232/diff/1/?file=2293803#file2293803line85>
> >
> >     Consider adding 
> >     
> >     assertEquals(0, svcTags.dedupTags());
> >     
> >     after this line and after line 97.
> 
> Madhan Neethiraj wrote:
>     Multiple calls to dedupTags() is covered in a separate test - 
> testDedup_DupTagsWithAttr_MultipleCalls(). Any reason to add it here as well? 
> May be testDedup_DupTagsWithAttr_MultipleCalls() can be removed then?

Probably not. Please drop this if it is already covered.


- Abhay


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/75232/#review226978
-----------------------------------------------------------


On Oct. 17, 2024, 1:29 a.m., Madhan Neethiraj wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/75232/
> -----------------------------------------------------------
> 
> (Updated Oct. 17, 2024, 1:29 a.m.)
> 
> 
> Review request for ranger, Abhishek  Kumar, Anand Nadar, Asit Vadhavkar, 
> Fateh Singh, Abhay Kulkarni, Pradeep Agrawal, Radhika Kundam, Ramesh Mani, 
> and Sailaja Polavarapu.
> 
> 
> Bugs: RANGER-4956
>     https://issues.apache.org/jira/browse/RANGER-4956
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> - dedupTags() on a ServiceTag instance can result in infinite loop when its 
> cachedTags is already populated (by an earlier call or via a copy 
> constructor), as it tries to replace a tag with itself. Updated to avoid such 
> replacement.
> 
> 
> Diffs
> -----
> 
>   agents-common/src/main/java/org/apache/ranger/plugin/util/ServiceTags.java 
> cc2ebe53a 
>   
> agents-common/src/test/java/org/apache/ranger/plugin/util/TestServiceTags.java
>  PRE-CREATION 
> 
> 
> Diff: https://reviews.apache.org/r/75232/diff/1/
> 
> 
> Testing
> -------
> 
> - added unit tests to verify dedupTags()
> - verified that all unit tests pass
> 
> 
> Thanks,
> 
> Madhan Neethiraj
> 
>

Reply via email to