You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by "Alok Lal (JIRA)" <ji...@apache.org> on 2015/09/24 06:56:04 UTC

[jira] [Created] (RANGER-663) Race condition during policy update causes policy to get in an bad state

Alok Lal created RANGER-663:
-------------------------------

             Summary: Race condition during policy update causes policy to get in an bad state
                 Key: RANGER-663
                 URL: https://issues.apache.org/jira/browse/RANGER-663
             Project: Ranger
          Issue Type: Bug
          Components: admin
    Affects Versions: 0.5.0
            Reporter: Alok Lal
            Priority: Critical
             Fix For: 0.5.1, 0.6.0


If two threads try to update one policy simultaneously then it can cause {{x_policy_resource}} table to have multiple values for a given {{policy_id, res_def_id}} combination.  When database gets in this stage then no policy can be read for that service unless and until the {{x_policy_resource_map}} and {{x_policy_resource}} tables are manually cleared up.

To reproduce the problem create a policy for a resource like hive 3, 4 values at each level (this is to increase the chances of multiple simultaneous update of the {{x_policy_resource}} and {{x_policy_resource_map}} table.  Then in a tight loop do PUT for that service in two separate shells.  Quickly updates will start to fail with 400 (since during update we read a policy).

Expectation is that in case of simultaneous update only one update should succeed other should fail.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)