tephra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TEPHRA-219) Setup proper security context in co-processor for compaction and flushes
Date Mon, 13 Feb 2017 00:30:42 GMT

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

ASF GitHub Bot commented on TEPHRA-219:
---------------------------------------

Github user poornachandra commented on a diff in the pull request:

    https://github.com/apache/incubator-tephra/pull/35#discussion_r100709097
  
    --- Diff: tephra-hbase-compat-1.1-base/src/main/java/org/apache/tephra/hbase/coprocessor/TransactionProcessor.java
---
    @@ -317,31 +317,31 @@ public InternalScanner preCompactScannerOpen(ObserverContext<RegionCoprocessorEn
         // Get the latest tx snapshot state for the compaction
         TransactionVisibilityState snapshot = cache.getLatestState();
     
    -    if (pruneEnable == null) {
    -      Configuration conf = getConfiguration(c.getEnvironment());
    -      // Configuration won't be null in TransactionProcessor but the derived classes
might return
    -      // null if it is not available temporarily
    -      if (conf != null) {
    -        pruneEnable = conf.getBoolean(TxConstants.TransactionPruning.PRUNE_ENABLE,
    -                                      TxConstants.TransactionPruning.DEFAULT_PRUNE_ENABLE);
    -        if (Boolean.TRUE.equals(pruneEnable)) {
    -          String pruneTable = conf.get(TxConstants.TransactionPruning.PRUNE_STATE_TABLE,
    -                                       TxConstants.TransactionPruning.DEFAULT_PRUNE_STATE_TABLE);
    -          long pruneFlushInterval = TimeUnit.SECONDS.toMillis(
    -            conf.getLong(TxConstants.TransactionPruning.PRUNE_FLUSH_INTERVAL,
    -                         TxConstants.TransactionPruning.DEFAULT_PRUNE_FLUSH_INTERVAL));
    -          compactionState = new CompactionState(c.getEnvironment(), TableName.valueOf(pruneTable),
pruneFlushInterval);
    -          if (LOG.isDebugEnabled()) {
    -            LOG.debug("Automatic invalid list pruning is enabled. Compaction state will
be recorded in table "
    -                        + pruneTable);
    -          }
    +    Configuration conf = getConfiguration(c.getEnvironment());
    --- End diff --
    
    We don't need to read the configuration every time since it does not change when part
of hbase-site.xml, right? We just need to make sure that when derived classes update the pruneEnable
and other fields from a different thread, it gets reflected here.


> Setup proper security context in co-processor for compaction and flushes
> ------------------------------------------------------------------------
>
>                 Key: TEPHRA-219
>                 URL: https://issues.apache.org/jira/browse/TEPHRA-219
>             Project: Tephra
>          Issue Type: Sub-task
>            Reporter: Poorna Chandra
>            Assignee: Gokul Gunasekaran
>             Fix For: 0.11.0-incubating
>
>
> From PHOENIX-3037, HBASE-16115 and HBASE-16141 - HBase runs compaction/flush co-processor
hooks as the user (current user) who started the compaction/flush. This becomes an issue when
a co-processor makes cross region server calls in hooks. If the calls are made as the current
user, then the call may fail since the current user may not have sufficient privileges to
perform the call.
> Tephra TransactionProcessor will need to run all calls in compaction/flush hooks as the
login user instead of the current user.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message