ranger-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pradeep Agrawal <pradeepagrawal8...@gmail.com>
Subject Re: Review Request 69347: RANGER-2286: Ranger install may be prevented by leftover DB entry
Date Mon, 19 Nov 2018 11:07:15 GMT

This is an automatically generated e-mail. To reply, visit:

(Updated Nov. 19, 2018, 11:07 a.m.)

Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, Mehul Parikh, Nikhil P, Ramesh
Mani, and Velmurugan Periasamy.


Updated patch after few more testing

Bugs: RANGER-2286

Repository: ranger


**Problem Statement:** Before execution of any db/java patch db_setup.py file makes an entry
in x_db_version_h table for that patch version and keep status active='N'. after this it steps
ahead and try to apply the patch. if patch gets applies then active status is updated to 'Y'.
if patch execution fails then it deletes that entry and terminates ranger installation so
that user can retry the ranger install process. Sometime due to network or a runtime error
Ranger could not change the active status to 'Y' or delete the entry in that case ranger install
may be prevented due to leftover DB entry as the next install attempt may wait for the status
to be 'Y' while it could be possible that there would not be any process which can apply the
patch(this will happen in Non-HA case).
This prevents any further attempt to install/start Ranger without manually deleting the entry
from the database.

**Proposed Solution:**
if entries made by a host is older than 10 minute then ranger setup process will try to delete
such entry and retry the patch execution.

Patch execution process shall have following rules after this patch.
1) Before execution a patch setup process will check whether a patch is applied or not; if
patch is already applied then it will move to next patch.
2) If patch is not applied then it will check whether patch status entry exist with active='N'
in x_db_version_h table from any of the host.  
3) If patch status entry with active='N' exist in x_db_version_h table for a different host
then ranger setup process will wait untill the another host applies the patch successfully
and update the patch status entry to active='Y'. Please note that patch recheck such entry
in every 2 minutes(default recheck interval)
4) If patch status entry with active='N' exist in x_db_version_h table for the same host then
ranger setup process will wait for maximum 10 minutes. After that ranger process will delete
that entry and check the entry again. if entry does not exist then it will try to apply the
patch again else it will wait for forever or unless you delete such entries manually.  Please
note that ranger will be checking the status entry every 2 minutes untill 10 minute wait time

1) Patch has been provided for ranger supported all the db flavors.
2) Cureent patch also removes several lines of audit db related dead code which is not required

Diffs (updated)

  security-admin/db/mysql/optimized/current/ranger_core_db_mysql.sql a4fa1305e 
  security-admin/db/mysql/patches/031-create-schema-for-usersync-audit-info.sql c17f19fe6

  security-admin/scripts/db_setup.py 73b24aca0 
  security-admin/scripts/install.properties f52c6b298 

Diff: https://reviews.apache.org/r/69347/diff/3/

Changes: https://reviews.apache.org/r/69347/diff/2-3/


**Steps performed for Ranger-admin **

1. To reproduce the case first installed ranger-0.7:
2. Now from the master branch.
3. Created Build with patch and untar the build.
4. Opened install.properties and provided db configuration in install.properties which was
provided in ranger-0.7 branch build.
5. Called setup.sh
6. Ranger setup process shall try to apply the new db/java patches.
7. As soon as setup process started executing the patch J10014, terminated the script by using
8. logged into ranger db and ensured that J10014 patch entry has active='N'
9. Called the setup.sh again
10. setup process waited for the patch J10014 status for sometime and then it deleted the
entry of J10014 patch from x_db_version_h table.
11.  setup process continues and applied the patch J10014 successfully.
12.  setup process completed successfully after applying all the patches.
13.  started ranger-admin and was able to see the ranger-admin dashboard page.


Pradeep Agrawal

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message