> On March 9, 2017, 4:34 p.m., Colm O hEigeartaigh wrote: > > We need to make sure that tmpUrl is not null, otherwise there will be a NPE. > > There is an indentation problem with the = sign in: String tmpUrl > > = RangerConfiguration.getInstance().get(propertyPrefix + > > ".policy.rest.url"); > > I'm confused by the rest of the logic. Why not do something like if (tmpUrl > > != null && tmpUrl.trim().endsWith("/")) {} ?
You are right. I have checked whether tmpUrl is null and updated the patch. Thanks. - Qiang ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/57127/#review168469 ----------------------------------------------------------- On Feb. 28, 2017, 12:07 p.m., Qiang Zhang wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/57127/ > ----------------------------------------------------------- > > (Updated Feb. 28, 2017, 12:07 p.m.) > > > Review request for ranger, Alok Lal, Ankita Sinha, Don Bosco Durai, Colm O > hEigeartaigh, Gautam Borad, Abhay Kulkarni, Madhan Neethiraj, Ramesh Mani, > Selvamohan Neethiraj, and Velmurugan Periasamy. > > > Bugs: RANGER-1415 > https://issues.apache.org/jira/browse/RANGER-1415 > > > Repository: ranger > > > Description > ------- > > The ranger can be opened when the user enters http://localhost:6080/ in the > browser address bar. But request policy from hadoop to ranger will failed > after installing hdfs plugin if we set POLICY_MGR_URL equal to > http://localhost:6080/.The error was as following: > 2017-02-27 21:16:42,859 ERROR > org.apache.ranger.admin.client.RangerAdminRESTClient: Error getting policies; > service not found. secureMode=false, user=root (auth:SIMPLE), response=404, > serviceName=hadoopdev, lastKnownVersion=4, > lastActivationTimeInMillis=1488246663112 > 2017-02-27 21:16:42,867 ERROR org.apache.ranger.plugin.util.PolicyRefresher: > PolicyRefresher(serviceName=hadoopdev): failed to find service. Will clean up > local cache of policies (4) > org.apache.ranger.plugin.util.RangerServiceNotFoundException: hadoopdev > at > org.apache.ranger.plugin.util.RangerServiceNotFoundException.throwExceptionIfServiceNotFound(RangerServiceNotFoundException.java:35) > at > org.apache.ranger.admin.client.RangerAdminRESTClient.getServicePoliciesIfUpdated(RangerAdminRESTClient.java:145) > at > org.apache.ranger.plugin.util.PolicyRefresher.loadPolicyfromPolicyAdmin(PolicyRefresher.java:257) > at > org.apache.ranger.plugin.util.PolicyRefresher.loadPolicy(PolicyRefresher.java:201) > at > org.apache.ranger.plugin.util.PolicyRefresher.run(PolicyRefresher.java:170) > Reason: > The brower will remove the last '/' character when the user enters > http://localhost:6080/ in the browser address bar. The rest request address > will be > http://localhost:6080//service/plugins/policies/download/hadoopdev?lastKnownVersion=-1&lastActivationTime=0&pluginId=hdfs@VBoxNodeEng-1-hadoopdev > when hadoop periodically requests policy from ranger. The request will fail > because there are two '/' character after 'Http://localhost:6080' in > http://localhost:6080//service/plugins/policies/download/hadoopdev?lastKnownVersion=-1&lastActivationTime=0&pluginId=hdfs@VBoxNodeEng-1-hadoopdev. > The result is that we can't see the hdfs plugins in audit web UI. > > The program should be compatible with this situation like the browser. > > Scenario: > The issue can be reoccurred after we set the value of > ranger.plugin.hdfs.policy.rest.url to http://localhost:6080/ in > ../hadoop/hadoop-2.7.3/etc/hadoop/ranger-hdfs-security.xml > > Test and verify: > I carefully tested and verified the patch before commit the issue. > > > Diffs > ----- > > > agents-common/src/main/java/org/apache/ranger/admin/client/RangerAdminRESTClient.java > 9334607 > > > Diff: https://reviews.apache.org/r/57127/diff/1/ > > > Testing > ------- > > > Thanks, > > Qiang Zhang > >