----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/74616/#review225778 -----------------------------------------------------------
Ship it! Ship It! - Mehul Parikh On Sept. 20, 2023, 10:41 a.m., Pradeep Agrawal wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/74616/ > ----------------------------------------------------------- > > (Updated Sept. 20, 2023, 10:41 a.m.) > > > Review request for ranger, Abhishek Kumar, bhavik patel, Dhaval Shah, > Dineshkumar Yadav, Kishor Gollapalliwar, Abhay Kulkarni, Madhan Neethiraj, > Mehul Parikh, Ramesh Mani, Sailaja Polavarapu, and Velmurugan Periasamy. > > > Bugs: RANGER-4422 > https://issues.apache.org/jira/browse/RANGER-4422 > > > Repository: ranger > > > Description > ------- > > **Problem Statement:** While searching for users / groups using the "Sync > Source" filter on the Users/Groups page, it leads to an error page. This > issue is present only on Oracle DB > > ``Error Message:`` > 2023-09-19 17:10:19,701 ERROR org.apache.ranger.biz.XUserMgr: > [https-jsse-nio-6182-exec-9]: Error getting the exact match of group > =>javax.persistence.PersistenceException: Exception [EclipseLink-4002] > (Eclipse Persistence Services - 2.7.12.v20230209-e5c4074ef3): > org.eclipse.persistence.exceptions.DatabaseException > Internal Exception: java.sql.SQLSyntaxErrorException: ORA-00932: inconsistent > datatypes: expected - got CLOB > > Error Code: 932 > Call: SELECT COUNT(ID) FROM x_group WHERE (((? = ?) AND LOWER(GROUP_NAME) > LIKE ?) AND (LOWER(SYNC_SOURCE) = ?)) > bind => [4 parameters bound] > Query: ReportQuery(referenceClass=XXGroup sql="SELECT COUNT(ID) FROM x_group > WHERE (((? = ?) AND LOWER(GROUP_NAME) LIKE ?) AND (LOWER(SYNC_SOURCE) = ?))") > 2023-09-19 17:10:21,654 WARN org.apache.ranger.biz.XUserMgr: > [https-jsse-nio-6182-exec-5]: XUserMgr.searchXGroups: unexpected > searchCriteriaParam:name > > > **Proposed solution:** The above error is due to SYNC_SOURCE column being > used in where clause which is of clob type in oracle and can not be used > directly. According to oracle documents type casting need to be done but > since type casting functions are different in different db flavor using them > and customizing the code for each flavor seems messy. The other possible > approach is we can use 'partial search approach' (rather 'full') in the code > which shall be converted to like query as per underlying db flavor. like > clause shall take care of type casting as well. since 'sync_source' column > values are restricted to 4 distinct possible values, choosing one values in > the filter will not bring the result of another 'sync_source'. > > > Diffs > ----- > > security-admin/src/main/java/org/apache/ranger/service/XGroupService.java > 650760304 > security-admin/src/main/java/org/apache/ranger/service/XUserService.java > d7c011ca3 > > > Diff: https://reviews.apache.org/r/74616/diff/1/ > > > Testing > ------- > > Tried Ranger installation with the proposed patch and the behaviour is as per > the expectation. Search request with sync_source filter completed > successfully and page was loaded with records. > > > Thanks, > > Pradeep Agrawal > >
