You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@sentry.apache.org by "Na Li (JIRA)" <ji...@apache.org> on 2018/03/07 23:33:00 UTC

[jira] [Created] (SENTRY-2166) Privilege is not updated for table rename during full snapshot

Na Li created SENTRY-2166:
-----------------------------

             Summary: Privilege is not updated for table rename during full snapshot
                 Key: SENTRY-2166
                 URL: https://issues.apache.org/jira/browse/SENTRY-2166
             Project: Sentry
          Issue Type: Bug
          Components: Sentry
    Affects Versions: 2.1.0
            Reporter: Na Li
            Assignee: Na Li
             Fix For: 2.1.0


It may take a while for sentry to get full snapshot from HMS. During this interval, table rename event could happen.

The current behavior:

1) get notification ID before full snapshot: NotificationID_before

2) get full snapshot

3) get notification ID after full snapshot: NotificationID_after

4) If NotificationID_after != NotificationID_before, get notification events between, and apply them to the full snapshot through {color:#f79232}*FullUpdateModifier.applyEvent()*{color}. 

5) save the updated full snapshot with *{color:#d04437}NotificationID_after{color}*

 

When there is a privilege associated with the old table, and table rename event happens during full snapshot, the privilege is not associated with the renamed table. 

 

The solution is to change the behavior as following:

1) get notification ID before full snapshot: NotificationID_before

2) get full snapshot 

3) get notification ID after full snapshot: NotificationID_after

4) Save the full snapshot with {color:#d04437}*NotificationID_before*{color}

5) When HMSFollower gets notification events from *{color:#d04437}NotificationID_before{color},*   the notification events during full snapshot will be processed through {color:#f79232}*NotificationProcessor.processNotificationEvent()* {color}

In this way, sentry always processes the notification events through {color:#f79232}*NotificationProcessor.processNotificationEvent()*{color}, and the privilege will be associated with renamed table.

This issue only happens when events, such as table rename, happens during full snapshot. 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)