hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16141) Unwind use of UserGroupInformation.doAs() to convey requester identity in coprocessor upcalls
Date Wed, 29 Jun 2016 19:30:05 GMT

    [ https://issues.apache.org/jira/browse/HBASE-16141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15355713#comment-15355713
] 

Andrew Purtell commented on HBASE-16141:
----------------------------------------

bq. I think it's fine to have "system hooks" run with the system user (compactions, flushes,
splits, etc), whereas get/scan/etc hooks need to be run on behalf of the calling user. 

I think Gary is suggesting we make every hook run in the context of the system user (User.runAsLoginUser()),
even the RPC upcalls, and pass the request user through in context or thread local. That's
a significant departure from earlier semantics but is very easy to reason about. We wouldn't
have to sprinkle doAs() blocks through the code as we refactor in an attempt to keep effective
user consistent as we decouple actions, make them asynchronous, or procedures, or ... 

> Unwind use of UserGroupInformation.doAs() to convey requester identity in coprocessor
upcalls
> ---------------------------------------------------------------------------------------------
>
>                 Key: HBASE-16141
>                 URL: https://issues.apache.org/jira/browse/HBASE-16141
>             Project: HBase
>          Issue Type: Improvement
>          Components: Coprocessors, security
>            Reporter: Gary Helmling
>            Assignee: Gary Helmling
>             Fix For: 2.0.0, 1.4.0
>
>
> In discussion on HBASE-16115, there is some discussion of whether UserGroupInformation.doAs()
is the right mechanism for propagating the original requester's identify in certain system
contexts (splits, compactions, some procedure calls).  It has the unfortunately of overriding
the current user, which makes for very confusing semantics for coprocessor implementors. 
We should instead find an alternate mechanism for conveying the caller identity, which does
not override the current user context.
> I think we should instead look at passing this through as part of the ObserverContext
passed to every coprocessor hook.



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

Mime
View raw message