----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/72252/#review220151 -----------------------------------------------------------
Ship it! Ship It! - Mehul Parikh On March 31, 2020, 7:25 a.m., Mahesh Bandal wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/72252/ > ----------------------------------------------------------- > > (Updated March 31, 2020, 7:25 a.m.) > > > Review request for ranger, Ankita Sinha, Gautam Borad, Madhan Neethiraj, > Mehul Parikh, Pradeep Agrawal, Ramesh Mani, Sailaja Polavarapu, and > Velmurugan Periasamy. > > > Bugs: RANGER-2764 > https://issues.apache.org/jira/browse/RANGER-2764 > > > Repository: ranger > > > Description > ------- > > The issue came when Role API was called in multi thread and two separate > threads were trying to INSERT same roletype, which has unique constraint. ie > 'state_name' column in 'x_ranger_global_state' table. To handle such > scenarios, loading 'x_ranger_global_state' table with initial version values > during initial setup only. > Also OptimisticLockException occurs for RoleCreation and RoleDeletion when > two threads are trying to update version column of x_ranger_global_state > table. To solve this proble I have used > RangerTransactionSynchronizationAdapter class for updating version in > synchonised way. > > > Diffs > ----- > > security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql > 2d93fc429 > > security-admin/db/mysql/patches/046-insert-statename-in-x-ranger-global-state.sql > PRE-CREATION > security-admin/db/oracle/optimized/current/ranger_core_db_oracle.sql > 38e546a56 > > security-admin/db/oracle/patches/046-insert-statename-in-x-ranger-global-state.sql > PRE-CREATION > security-admin/db/postgres/optimized/current/ranger_core_db_postgres.sql > 7c2ada55e > > security-admin/db/postgres/patches/046-insert-statename-in-x-ranger-global-state.sql > PRE-CREATION > > security-admin/db/sqlanywhere/optimized/current/ranger_core_db_sqlanywhere.sql > 7b0509cc0 > > security-admin/db/sqlanywhere/patches/046-insert-statename-in-x-ranger-global-state.sql > PRE-CREATION > security-admin/db/sqlserver/optimized/current/ranger_core_db_sqlserver.sql > 25b3bed34 > > security-admin/db/sqlserver/patches/046-insert-statename-in-x-ranger-global-state.sql > PRE-CREATION > security-admin/src/main/java/org/apache/ranger/biz/RoleDBStore.java > c4a32e46e > security-admin/src/main/java/org/apache/ranger/db/XXGlobalStateDao.java > b979459e8 > > > Diff: https://reviews.apache.org/r/72252/diff/6/ > > > Testing > ------- > > 1. Fresh(Initial) Setup : Created new environment for ranger master. So now > patch execute successfully and 'x_ranger_global_state' table have intial > values with respected 'staste_name' columns with default 'version=1'. > > 2. Upgrade ranger : Created new environment for ranger master branch and > ranger-2.0 branch. Run setup.sh file for ranger-2.0. Initially no values in > 'x_ranger_global_state' table. Now setting up master branch with upgraded > patch and run setup.sh on master branch where db points to same schema as > ranger-2.0. db file '046-insert-statename-in-x-ranger-global-state.sql' > execute successfully and 'x_ranger_global_state' table have intial values > with respected 'staste_name' columns with default 'version=1'. > 3. Created/Deleted 300 roles simultaneously. Roles are successfully created > but version update fails at some point with OptimisticLockException. Handled > exception and success response retured. > > After applying patch; created/deleted multiple roles. 'state_name' column > updates successfully. > > > Thanks, > > Mahesh Bandal > >
