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

Andrew Purtell commented on HBASE-14944:
----------------------------------------

For SplitTransaction and RegionMergeTransaction we could add add new methods 
getRequestUser and setRequestUser for accessing the request user (and setting 
it), but this leaves us with the same problem, new abstract methods, because 
these are both interfaces.

For the compaction related changes to Store we can carry around the request 
User within CompactionContext and CompactionRequest. CompactionContext is 
private. CompactionRequest is LP(Coprocessor). However both are abstract 
classes so by providing implementations of getters and setters we won't cause 
source or binary compat problems. We would however introduce changes where code 
written against new release N won't compile after rollback to N-1. 

Any other ideas [~ndimiduk], [~ted_yu] ?

Also for sake of completness, we also have the option of reverting the chain of 
commits leading to this point back to the original security bug fix for secure 
bulk load, and advise in the troubleshooting section of the manual and/or 
release notes that we can't fix the problem in 1.0 or 1.1.

> Minimize or eliminate source incompatible changes due to HBASE-14605, 
> HBASE-14631, and HBASE-14655
> --------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-14944
>                 URL: https://issues.apache.org/jira/browse/HBASE-14944
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Andrew Purtell
>            Priority: Blocker
>             Fix For: 1.1.3, 1.0.4
>
>
> Minimize or eliminate source incompatible changes due to HBASE-14605, 
> HBASE-14631, and HBASE-14655. The changes are due to abstract method 
> additions to carry the correct (not current) {{User}} through to where 
> authoritative decisions or audit is performed.
> HBASE-14605 introduces source incompatible changes to the SplitTransaction 
> interface:
> - Adds abstract method execute(Server, RegionServerServices, User)
> - Adds abstract method rollback(Server, RegionServerServices, User)
> HBASE-14631 introduces source incompatible changes to the 
> RegionMergeTransaction interface:
> - Adds abstract method execute(Server, RegionServerServices, User)
> - Adds abstract method rollback(Server, RegionServerServices, User)
> HBASE-14655 introduces source incompatible changes to the Store interface:
> - Adds abstract method compact(CompactionContext, 
> CompactionThroughputController, User)
> - Adds abstract method requestCompaction( int, CompactionRequest, User)
> Default implementations are provided for binary compatibility but 
> implementors of these interface won't recompile until implementations of the 
> new methods are added.



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

Reply via email to