Hi,
We have a custom written coprocessor for CreateTableHandler which does some 
hdfs related stuff in postCreateTableHandler, and it was working fine till 
HBASE-11886 got merged. It seems that post HBASE-11886 merge, our coprocessor 
code is getting executed with remote rpc user privileges instead of master 
privileges:
//  --START--
    this.activeUser.runAs(new PrivilegedExceptionAction<Void>() {
          @Override
          public Void run() throws Exception {
            cpHost.postCreateTableHandler(hTableDescriptor, newRegions);
            return null;
          }
        });
// --END--

As per HBASE-11886,  these changes were done to handle table ACL related issue 
,  however it does this by reducing the default privileges coprocessor runs 
under.
We can get around this by using User.runAsLoginUser in our coprocessor code but 
I think  by default coprocessors should continue to run with master/region 
server identity and HBASE-11886 can be handled in some other way, for example 
using InheritedThreadLocal for RequestContext, as suggested in comments by 
Anoop in HBASE-11886,  pls let us know ur views on this, thanks.


Regards,
Abhishek

Reply via email to