[ 
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)

Reply via email to