You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2014/09/20 04:46:34 UTC

[jira] [Resolved] (HBASE-12033) SecurityUtil#doAsLoginUser is absent in hadoop-1, making AccessController#postCreateTableHandler() ineffective

     [ https://issues.apache.org/jira/browse/HBASE-12033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ted Yu resolved HBASE-12033.
----------------------------
      Resolution: Fixed
    Hadoop Flags: Reviewed

Integrated to 0.98 branch.

Thanks for the review.

> SecurityUtil#doAsLoginUser is absent in hadoop-1, making AccessController#postCreateTableHandler() ineffective
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-12033
>                 URL: https://issues.apache.org/jira/browse/HBASE-12033
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.98.6.1
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>             Fix For: 0.98.7
>
>         Attachments: 12033-0.98.txt
>
>
> This affects build against hadoop-1 only.
> From https://builds.apache.org/job/HBase-0.98-on-Hadoop-1.1/497/testReport/junit/org.apache.hadoop.hbase.security.access/TestAccessController/testSplit/ :
> {code}
> 2014-09-16 22:47:05,526 ERROR [MASTER_TABLE_OPERATIONS-asf911:60077-0] handler.CreateTableHandler(180): Error trying to create the table testSplit
> java.io.IOException: java.lang.IllegalArgumentException: Can't find method doAsLoginUser in org.apache.hadoop.security.SecurityUtil!
> 	at org.apache.hadoop.hbase.security.User.runAsLoginUser(User.java:182)
> 	at org.apache.hadoop.hbase.security.access.AccessController.postCreateTableHandler(AccessController.java:917)
> 	at org.apache.hadoop.hbase.master.MasterCoprocessorHost$10.call(MasterCoprocessorHost.java:183)
> 	at org.apache.hadoop.hbase.master.MasterCoprocessorHost.execOperation(MasterCoprocessorHost.java:801)
> 	at org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTableHandler(MasterCoprocessorHost.java:179)
> 	at org.apache.hadoop.hbase.master.handler.CreateTableHandler$1.run(CreateTableHandler.java:174)
> 	at org.apache.hadoop.hbase.master.handler.CreateTableHandler$1.run(CreateTableHandler.java:171)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:396)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190)
> 	at org.apache.hadoop.hbase.security.User$SecureHadoopUser.runAs(User.java:287)
> 	at org.apache.hadoop.hbase.master.handler.CreateTableHandler.process(CreateTableHandler.java:171)
> 	at org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:128)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> 	at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.IllegalArgumentException: Can't find method doAsLoginUser in org.apache.hadoop.security.SecurityUtil!
> 	at org.apache.hadoop.hbase.util.Methods.call(Methods.java:45)
> 	at org.apache.hadoop.hbase.security.User.runAsLoginUser(User.java:180)
> 	... 15 more
> Caused by: java.lang.NoSuchMethodException: org.apache.hadoop.security.SecurityUtil.doAsLoginUser(java.security.PrivilegedExceptionAction)
> 	at java.lang.Class.getMethod(Class.java:1607)
> 	at org.apache.hadoop.hbase.util.Methods.call(Methods.java:38)
> 	... 16 more
> {code}
> We can bring the code from SecurityUtil#doAsLoginUser into hbase codebase.



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