You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2016/08/30 22:49:06 UTC

[1/5] hbase git commit: HBASE-16522 Procedure v2 - Cache system user and avoid IOException

Repository: hbase
Updated Branches:
  refs/heads/branch-1 e46a073ed -> 57c6384b0
  refs/heads/branch-1.1 2a4b45540 -> 2250e5718
  refs/heads/branch-1.2 c16ec3d6e -> 15633a0fb
  refs/heads/branch-1.3 f4b6fdc42 -> af59baba1
  refs/heads/master c66bb48ce -> af33f9451


HBASE-16522 Procedure v2 - Cache system user and avoid IOException


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/15633a0f
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/15633a0f
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/15633a0f

Branch: refs/heads/branch-1.2
Commit: 15633a0fb591f9f0dadc66d9d79154b956450601
Parents: c16ec3d
Author: Matteo Bertozzi <ma...@cloudera.com>
Authored: Tue Aug 30 11:53:15 2016 -0700
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Tue Aug 30 11:58:50 2016 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/security/Superusers.java | 15 ++++++++++-----
 .../master/procedure/AddColumnFamilyProcedure.java   |  6 ++----
 .../hbase/master/procedure/CreateTableProcedure.java |  6 ++----
 .../procedure/DeleteColumnFamilyProcedure.java       |  6 ++----
 .../hbase/master/procedure/DeleteTableProcedure.java |  5 ++---
 .../master/procedure/DisableTableProcedure.java      | 15 ++++-----------
 .../hbase/master/procedure/EnableTableProcedure.java | 15 ++++-----------
 .../hbase/master/procedure/MasterProcedureEnv.java   |  6 +++---
 .../procedure/ModifyColumnFamilyProcedure.java       |  6 ++----
 .../hbase/master/procedure/ModifyTableProcedure.java |  4 +---
 .../master/procedure/TruncateTableProcedure.java     |  2 +-
 11 files changed, 33 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
index b4ce36e..e88d205 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
@@ -42,6 +42,7 @@ public final class Superusers {
 
   private static List<String> superUsers;
   private static List<String> superGroups;
+  private static User systemUser;
 
   private Superusers(){}
 
@@ -55,17 +56,17 @@ public final class Superusers {
   public static void initialize(Configuration conf) throws IOException {
     superUsers = new ArrayList<>();
     superGroups = new ArrayList<>();
-    User user = User.getCurrent();
+    systemUser = User.getCurrent();
 
-    if (user == null) {
+    if (systemUser == null) {
       throw new IllegalStateException("Unable to obtain the current user, "
         + "authorization checks for internal operations will not work correctly!");
     }
 
     if (LOG.isTraceEnabled()) {
-      LOG.trace("Current user name is " + user.getShortName());
+      LOG.trace("Current user name is " + systemUser.getShortName());
     }
-    String currentUser = user.getShortName();
+    String currentUser = systemUser.getShortName();
     String[] superUserList = conf.getStrings(SUPERUSER_CONF_KEY, new String[0]);
     for (String name : superUserList) {
       if (AuthUtil.isGroupPrincipal(name)) {
@@ -121,4 +122,8 @@ public final class Superusers {
       return false;
     }
   }
-}
\ No newline at end of file
+
+  public static User getSystemUser() {
+    return systemUser;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
index 9905767..a7e34d8 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
@@ -66,10 +66,8 @@ public class AddColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public AddColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final HColumnDescriptor cfDescriptor) throws IOException {
+  public AddColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final HColumnDescriptor cfDescriptor) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
index 6d4955c..a0aa637 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
@@ -76,15 +76,13 @@ public class CreateTableProcedure
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
-      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions)
-      throws IOException {
+      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions) {
     this(env, hTableDescriptor, newRegions, null);
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
       final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions,
-      final ProcedurePrepareLatch syncLatch)
-      throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.hTableDescriptor = hTableDescriptor;
     this.newRegions = newRegions != null ? Lists.newArrayList(newRegions) : null;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
index 54d8fe5..bb8a201 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
@@ -67,10 +67,8 @@ public class DeleteColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public DeleteColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final byte[] familyName) throws IOException {
+  public DeleteColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final byte[] familyName) {
     this.tableName = tableName;
     this.familyName = familyName;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
index 38b83a2..44dde9e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
@@ -74,13 +74,12 @@ public class DeleteTableProcedure
     syncLatch = null;
   }
 
-  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName)
-      throws IOException {
+  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName) {
     this(env, tableName, null);
   }
 
   public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.user = env.getRequestUser().getUGI();
     this.setOwner(this.user.getShortUserName());

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
index 9491fb1..185c0d0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
@@ -83,12 +83,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -97,13 +94,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
index e7d6685..14f68e2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
@@ -82,12 +82,9 @@ public class EnableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -96,13 +93,9 @@ public class EnableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
index 090b8cc..3911f54 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
@@ -36,7 +36,7 @@ import org.apache.hadoop.hbase.procedure2.Procedure;
 import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;
 import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;
 import org.apache.hadoop.hbase.security.User;
-import org.apache.hadoop.hbase.security.UserProvider;
+import org.apache.hadoop.hbase.security.Superusers;
 import org.apache.hadoop.hbase.util.CancelableProgressable;
 import org.apache.hadoop.hbase.util.FSUtils;
 
@@ -96,10 +96,10 @@ public class MasterProcedureEnv {
       master.getTableLockManager());
   }
 
-  public User getRequestUser() throws IOException {
+  public User getRequestUser() {
     User user = RpcServer.getRequestUser();
     if (user == null) {
-      user = UserProvider.instantiate(getMasterConfiguration()).getCurrent();
+      user = Superusers.getSystemUser();
     }
     return user;
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
index fd212eb..5e81dbf 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
@@ -64,10 +64,8 @@ public class ModifyColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public ModifyColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final HColumnDescriptor cfDescriptor) throws IOException {
+  public ModifyColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final HColumnDescriptor cfDescriptor) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
index ddbc9ef..71b1f95 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
@@ -71,9 +71,7 @@ public class ModifyTableProcedure
     initilize();
   }
 
-  public ModifyTableProcedure(
-    final MasterProcedureEnv env,
-    final HTableDescriptor htd) throws IOException {
+  public ModifyTableProcedure(final MasterProcedureEnv env, final HTableDescriptor htd) {
     initilize();
     this.modifiedHTableDescriptor = htd;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/15633a0f/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
index 3623f35..3a3739d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
@@ -61,7 +61,7 @@ public class TruncateTableProcedure
   }
 
   public TruncateTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      boolean preserveSplits) throws IOException {
+      boolean preserveSplits) {
     this.tableName = tableName;
     this.preserveSplits = preserveSplits;
     this.user = env.getRequestUser().getUGI();


[3/5] hbase git commit: HBASE-16522 Procedure v2 - Cache system user and avoid IOException

Posted by mb...@apache.org.
HBASE-16522 Procedure v2 - Cache system user and avoid IOException


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/57c6384b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/57c6384b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/57c6384b

Branch: refs/heads/branch-1
Commit: 57c6384b0981150c5870d064702b4c624ecdd85a
Parents: e46a073
Author: Matteo Bertozzi <ma...@cloudera.com>
Authored: Tue Aug 30 11:53:15 2016 -0700
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Tue Aug 30 15:35:08 2016 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/security/Superusers.java | 13 +++++++++----
 .../master/procedure/AddColumnFamilyProcedure.java   |  6 ++----
 .../master/procedure/CreateNamespaceProcedure.java   |  5 ++---
 .../hbase/master/procedure/CreateTableProcedure.java |  6 ++----
 .../procedure/DeleteColumnFamilyProcedure.java       |  6 ++----
 .../master/procedure/DeleteNamespaceProcedure.java   |  4 +---
 .../hbase/master/procedure/DeleteTableProcedure.java |  5 ++---
 .../master/procedure/DisableTableProcedure.java      | 15 ++++-----------
 .../hbase/master/procedure/EnableTableProcedure.java | 15 ++++-----------
 .../hbase/master/procedure/MasterProcedureEnv.java   |  6 +++---
 .../procedure/ModifyColumnFamilyProcedure.java       |  6 ++----
 .../master/procedure/ModifyNamespaceProcedure.java   |  5 ++---
 .../hbase/master/procedure/ModifyTableProcedure.java |  4 +---
 .../master/procedure/TruncateTableProcedure.java     |  2 +-
 14 files changed, 37 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
index 0f28e26..e50f0dc 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
@@ -42,6 +42,7 @@ public final class Superusers {
 
   private static List<String> superUsers;
   private static List<String> superGroups;
+  private static User systemUser;
 
   private Superusers(){}
 
@@ -55,17 +56,17 @@ public final class Superusers {
   public static void initialize(Configuration conf) throws IOException {
     superUsers = new ArrayList<>();
     superGroups = new ArrayList<>();
-    User user = User.getCurrent();
+    systemUser = User.getCurrent();
 
-    if (user == null) {
+    if (systemUser == null) {
       throw new IllegalStateException("Unable to obtain the current user, "
         + "authorization checks for internal operations will not work correctly!");
     }
 
     if (LOG.isTraceEnabled()) {
-      LOG.trace("Current user name is " + user.getShortName());
+      LOG.trace("Current user name is " + systemUser.getShortName());
     }
-    String currentUser = user.getShortName();
+    String currentUser = systemUser.getShortName();
     String[] superUserList = conf.getStrings(SUPERUSER_CONF_KEY, new String[0]);
     for (String name : superUserList) {
       if (AuthUtil.isGroupPrincipal(name)) {
@@ -125,4 +126,8 @@ public final class Superusers {
   public static List<String> getSuperUsers() {
     return superUsers;
   }
+
+  public static User getSystemUser() {
+    return systemUser;
+  }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
index 9905767..a7e34d8 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
@@ -66,10 +66,8 @@ public class AddColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public AddColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final HColumnDescriptor cfDescriptor) throws IOException {
+  public AddColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final HColumnDescriptor cfDescriptor) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
index 1dd39d9..e873156 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
@@ -55,9 +55,8 @@ public class CreateNamespaceProcedure
     this.traceEnabled = null;
   }
 
-  public CreateNamespaceProcedure(
-      final MasterProcedureEnv env,
-      final NamespaceDescriptor nsDescriptor) throws IOException {
+  public CreateNamespaceProcedure(final MasterProcedureEnv env,
+      final NamespaceDescriptor nsDescriptor) {
     this.nsDescriptor = nsDescriptor;
     this.traceEnabled = null;
     this.setOwner(env.getRequestUser().getUGI().getShortUserName());

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
index c351cea..74433b4 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
@@ -77,15 +77,13 @@ public class CreateTableProcedure
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
-      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions)
-      throws IOException {
+      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions) {
     this(env, hTableDescriptor, newRegions, null);
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
       final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions,
-      final ProcedurePrepareLatch syncLatch)
-      throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.hTableDescriptor = hTableDescriptor;
     this.newRegions = newRegions != null ? Lists.newArrayList(newRegions) : null;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
index 54d8fe5..bb8a201 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
@@ -67,10 +67,8 @@ public class DeleteColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public DeleteColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final byte[] familyName) throws IOException {
+  public DeleteColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final byte[] familyName) {
     this.tableName = tableName;
     this.familyName = familyName;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
index 3a4ccbb..a7ebc30 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
@@ -63,9 +63,7 @@ public class DeleteNamespaceProcedure
     this.traceEnabled = null;
   }
 
-  public DeleteNamespaceProcedure(
-      final MasterProcedureEnv env,
-      final String namespaceName) throws IOException {
+  public DeleteNamespaceProcedure(final MasterProcedureEnv env, final String namespaceName) {
     this.namespaceName = namespaceName;
     this.nsDescriptor = null;
     this.traceEnabled = null;

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
index 38b83a2..44dde9e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
@@ -74,13 +74,12 @@ public class DeleteTableProcedure
     syncLatch = null;
   }
 
-  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName)
-      throws IOException {
+  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName) {
     this(env, tableName, null);
   }
 
   public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.user = env.getRequestUser().getUGI();
     this.setOwner(this.user.getShortUserName());

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
index 9491fb1..185c0d0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
@@ -83,12 +83,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -97,13 +94,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
index e7d6685..14f68e2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
@@ -82,12 +82,9 @@ public class EnableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -96,13 +93,9 @@ public class EnableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
index 090b8cc..3911f54 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
@@ -36,7 +36,7 @@ import org.apache.hadoop.hbase.procedure2.Procedure;
 import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;
 import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;
 import org.apache.hadoop.hbase.security.User;
-import org.apache.hadoop.hbase.security.UserProvider;
+import org.apache.hadoop.hbase.security.Superusers;
 import org.apache.hadoop.hbase.util.CancelableProgressable;
 import org.apache.hadoop.hbase.util.FSUtils;
 
@@ -96,10 +96,10 @@ public class MasterProcedureEnv {
       master.getTableLockManager());
   }
 
-  public User getRequestUser() throws IOException {
+  public User getRequestUser() {
     User user = RpcServer.getRequestUser();
     if (user == null) {
-      user = UserProvider.instantiate(getMasterConfiguration()).getCurrent();
+      user = Superusers.getSystemUser();
     }
     return user;
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
index fd212eb..5e81dbf 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
@@ -64,10 +64,8 @@ public class ModifyColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public ModifyColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final HColumnDescriptor cfDescriptor) throws IOException {
+  public ModifyColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final HColumnDescriptor cfDescriptor) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
index d8b1bed..5d9548b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
@@ -55,9 +55,8 @@ public class ModifyNamespaceProcedure
     this.traceEnabled = null;
   }
 
-  public ModifyNamespaceProcedure(
-      final MasterProcedureEnv env,
-      final NamespaceDescriptor newNsDescriptor) throws IOException {
+  public ModifyNamespaceProcedure(final MasterProcedureEnv env,
+      final NamespaceDescriptor newNsDescriptor) {
     this.oldNsDescriptor = null;
     this.newNsDescriptor = newNsDescriptor;
     this.traceEnabled = null;

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
index f1f6457..b04a638 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
@@ -72,9 +72,7 @@ public class ModifyTableProcedure
     initilize();
   }
 
-  public ModifyTableProcedure(
-    final MasterProcedureEnv env,
-    final HTableDescriptor htd) throws IOException {
+  public ModifyTableProcedure(final MasterProcedureEnv env, final HTableDescriptor htd) {
     initilize();
     this.modifiedHTableDescriptor = htd;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/57c6384b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
index 3623f35..3a3739d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
@@ -61,7 +61,7 @@ public class TruncateTableProcedure
   }
 
   public TruncateTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      boolean preserveSplits) throws IOException {
+      boolean preserveSplits) {
     this.tableName = tableName;
     this.preserveSplits = preserveSplits;
     this.user = env.getRequestUser().getUGI();


[4/5] hbase git commit: HBASE-16522 Procedure v2 - Cache system user and avoid IOException

Posted by mb...@apache.org.
HBASE-16522 Procedure v2 - Cache system user and avoid IOException


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/af33f945
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/af33f945
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/af33f945

Branch: refs/heads/master
Commit: af33f94513f84e811fb713cd2ccc4d50ff317844
Parents: c66bb48
Author: Matteo Bertozzi <ma...@cloudera.com>
Authored: Tue Aug 30 10:08:36 2016 -0700
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Tue Aug 30 15:39:49 2016 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/security/Superusers.java | 13 +++++++++----
 .../master/procedure/AddColumnFamilyProcedure.java   |  2 +-
 .../master/procedure/CloneSnapshotProcedure.java     |  8 ++------
 .../master/procedure/CreateNamespaceProcedure.java   |  5 ++---
 .../hbase/master/procedure/CreateTableProcedure.java |  6 ++----
 .../procedure/DeleteColumnFamilyProcedure.java       |  4 ++--
 .../master/procedure/DeleteNamespaceProcedure.java   |  4 +---
 .../hbase/master/procedure/DeleteTableProcedure.java |  5 ++---
 .../master/procedure/DisableTableProcedure.java      | 15 ++++-----------
 .../procedure/DispatchMergingRegionsProcedure.java   |  2 +-
 .../hbase/master/procedure/EnableTableProcedure.java | 15 ++++-----------
 .../hbase/master/procedure/MasterProcedureEnv.java   |  6 +++---
 .../procedure/ModifyColumnFamilyProcedure.java       |  4 ++--
 .../master/procedure/ModifyNamespaceProcedure.java   |  5 ++---
 .../hbase/master/procedure/ModifyTableProcedure.java |  5 ++---
 .../master/procedure/RestoreSnapshotProcedure.java   |  3 +--
 .../master/procedure/TruncateTableProcedure.java     |  4 ++--
 17 files changed, 42 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
index f1a3877..c18928d 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
@@ -42,6 +42,7 @@ public final class Superusers {
 
   private static List<String> superUsers;
   private static List<String> superGroups;
+  private static User systemUser;
 
   private Superusers(){}
 
@@ -55,17 +56,17 @@ public final class Superusers {
   public static void initialize(Configuration conf) throws IOException {
     superUsers = new ArrayList<>();
     superGroups = new ArrayList<>();
-    User user = User.getCurrent();
+    systemUser = User.getCurrent();
 
-    if (user == null) {
+    if (systemUser == null) {
       throw new IllegalStateException("Unable to obtain the current user, "
         + "authorization checks for internal operations will not work correctly!");
     }
 
     if (LOG.isTraceEnabled()) {
-      LOG.trace("Current user name is " + user.getShortName());
+      LOG.trace("Current user name is " + systemUser.getShortName());
     }
-    String currentUser = user.getShortName();
+    String currentUser = systemUser.getShortName();
     String[] superUserList = conf.getStrings(SUPERUSER_CONF_KEY, new String[0]);
     for (String name : superUserList) {
       if (AuthUtil.isGroupPrincipal(name)) {
@@ -104,4 +105,8 @@ public final class Superusers {
   public static List<String> getSuperUsers() {
     return superUsers;
   }
+
+  public static User getSystemUser() {
+    return systemUser;
+  }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
index c9478cb..7c0b691 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
@@ -75,7 +75,7 @@ public class AddColumnFamilyProcedure
   }
 
   public AddColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final HColumnDescriptor cfDescriptor, final ProcedurePrepareLatch latch) throws IOException {
+      final HColumnDescriptor cfDescriptor, final ProcedurePrepareLatch latch) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.java
index 861ac56..1212072 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CloneSnapshotProcedure.java
@@ -97,13 +97,9 @@ public class CloneSnapshotProcedure
    * @param env MasterProcedureEnv
    * @param hTableDescriptor the table to operate on
    * @param snapshot snapshot to clone from
-   * @throws IOException
    */
-  public CloneSnapshotProcedure(
-      final MasterProcedureEnv env,
-      final HTableDescriptor hTableDescriptor,
-      final SnapshotDescription snapshot)
-      throws IOException {
+  public CloneSnapshotProcedure(final MasterProcedureEnv env,
+      final HTableDescriptor hTableDescriptor, final SnapshotDescription snapshot) {
     this.hTableDescriptor = hTableDescriptor;
     this.snapshot = snapshot;
     this.user = env.getRequestUser();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
index a9a0968..7c8bf9c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
@@ -55,9 +55,8 @@ public class CreateNamespaceProcedure
     this.traceEnabled = null;
   }
 
-  public CreateNamespaceProcedure(
-      final MasterProcedureEnv env,
-      final NamespaceDescriptor nsDescriptor) throws IOException {
+  public CreateNamespaceProcedure(final MasterProcedureEnv env,
+      final NamespaceDescriptor nsDescriptor) {
     this.nsDescriptor = nsDescriptor;
     this.traceEnabled = null;
     this.setOwner(env.getRequestUser().getUGI().getShortUserName());

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
index f6ade6e..ae8d2fb 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
@@ -76,15 +76,13 @@ public class CreateTableProcedure
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
-      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions)
-      throws IOException {
+      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions) {
     this(env, hTableDescriptor, newRegions, null);
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
       final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions,
-      final ProcedurePrepareLatch syncLatch)
-      throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.hTableDescriptor = hTableDescriptor;
     this.newRegions = newRegions != null ? Lists.newArrayList(newRegions) : null;
     this.user = env.getRequestUser();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
index da24cef..9df9c0d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
@@ -73,12 +73,12 @@ public class DeleteColumnFamilyProcedure
   }
 
   public DeleteColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final byte[] familyName) throws IOException {
+      final byte[] familyName) {
     this(env, tableName, familyName, null);
   }
 
   public DeleteColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final byte[] familyName, final ProcedurePrepareLatch latch) throws IOException {
+      final byte[] familyName, final ProcedurePrepareLatch latch) {
     this.tableName = tableName;
     this.familyName = familyName;
     this.user = env.getRequestUser();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
index bd71aa3..3f4de12 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
@@ -63,9 +63,7 @@ public class DeleteNamespaceProcedure
     this.traceEnabled = null;
   }
 
-  public DeleteNamespaceProcedure(
-      final MasterProcedureEnv env,
-      final String namespaceName) throws IOException {
+  public DeleteNamespaceProcedure(final MasterProcedureEnv env, final String namespaceName) {
     this.namespaceName = namespaceName;
     this.nsDescriptor = null;
     this.traceEnabled = null;

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
index 2881ed5..64bdccc 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
@@ -76,13 +76,12 @@ public class DeleteTableProcedure
     syncLatch = null;
   }
 
-  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName)
-      throws IOException {
+  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName) {
     this(env, tableName, null);
   }
 
   public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.user = env.getRequestUser();
     this.setOwner(this.user.getShortName());

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
index be21590..e2d7d16 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
@@ -83,12 +83,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -97,13 +94,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DispatchMergingRegionsProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DispatchMergingRegionsProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DispatchMergingRegionsProcedure.java
index b4f1bf0..cb091ce 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DispatchMergingRegionsProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DispatchMergingRegionsProcedure.java
@@ -84,7 +84,7 @@ implements TableProcedureInterface {
       final MasterProcedureEnv env,
       final TableName tableName,
       final HRegionInfo [] regionsToMerge,
-      final boolean forcible) throws IOException {
+      final boolean forcible) {
     this.traceEnabled = isTraceEnabled();
     this.assignmentManager = getAssignmentManager(env);
     this.tableName = tableName;

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
index 1893543..1817a16 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
@@ -80,12 +80,9 @@ public class EnableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -94,13 +91,9 @@ public class EnableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
index 3b5eced..52e3d60 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
@@ -36,7 +36,7 @@ import org.apache.hadoop.hbase.procedure2.Procedure;
 import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;
 import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;
 import org.apache.hadoop.hbase.security.User;
-import org.apache.hadoop.hbase.security.UserProvider;
+import org.apache.hadoop.hbase.security.Superusers;
 import org.apache.hadoop.hbase.util.CancelableProgressable;
 import org.apache.hadoop.hbase.util.FSUtils;
 
@@ -96,10 +96,10 @@ public class MasterProcedureEnv {
       master.getTableLockManager());
   }
 
-  public User getRequestUser() throws IOException {
+  public User getRequestUser() {
     User user = RpcServer.getRequestUser();
     if (user == null) {
-      user = UserProvider.instantiate(getMasterConfiguration()).getCurrent();
+      user = Superusers.getSystemUser();
     }
     return user;
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
index 1769306..b06ffe8 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
@@ -69,12 +69,12 @@ public class ModifyColumnFamilyProcedure
   }
 
   public ModifyColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final HColumnDescriptor cfDescriptor) throws IOException {
+      final HColumnDescriptor cfDescriptor) {
     this(env, tableName, cfDescriptor, null);
   }
 
   public ModifyColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final HColumnDescriptor cfDescriptor, final ProcedurePrepareLatch latch) throws IOException {
+      final HColumnDescriptor cfDescriptor, final ProcedurePrepareLatch latch) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
index 1f885bd..a16c8d1 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
@@ -55,9 +55,8 @@ public class ModifyNamespaceProcedure
     this.traceEnabled = null;
   }
 
-  public ModifyNamespaceProcedure(
-      final MasterProcedureEnv env,
-      final NamespaceDescriptor newNsDescriptor) throws IOException {
+  public ModifyNamespaceProcedure(final MasterProcedureEnv env,
+      final NamespaceDescriptor newNsDescriptor) {
     this.oldNsDescriptor = null;
     this.newNsDescriptor = newNsDescriptor;
     this.traceEnabled = null;

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
index 8299bcc..64c26b9 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
@@ -76,13 +76,12 @@ public class ModifyTableProcedure
     this.syncLatch = null;
   }
 
-  public ModifyTableProcedure(final MasterProcedureEnv env, final HTableDescriptor htd)
-      throws IOException {
+  public ModifyTableProcedure(final MasterProcedureEnv env, final HTableDescriptor htd) {
     this(env, htd, null);
   }
 
   public ModifyTableProcedure(final MasterProcedureEnv env, final HTableDescriptor htd,
-      final ProcedurePrepareLatch latch) throws IOException {
+      final ProcedurePrepareLatch latch) {
     initilize();
     this.modifiedHTableDescriptor = htd;
     this.user = env.getRequestUser();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java
index 23ab3ac..6ac6fe7 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/RestoreSnapshotProcedure.java
@@ -99,8 +99,7 @@ public class RestoreSnapshotProcedure
   public RestoreSnapshotProcedure(
       final MasterProcedureEnv env,
       final HTableDescriptor hTableDescriptor,
-      final SnapshotDescription snapshot)
-      throws IOException {
+      final SnapshotDescription snapshot) {
     // This is the new schema we are going to write out as this modification.
     this.modifiedHTableDescriptor = hTableDescriptor;
     // Snapshot information

http://git-wip-us.apache.org/repos/asf/hbase/blob/af33f945/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
index 8e3ef3e..75606c2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
@@ -65,12 +65,12 @@ public class TruncateTableProcedure
   }
 
   public TruncateTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      boolean preserveSplits) throws IOException {
+      boolean preserveSplits) {
     this(env, tableName, preserveSplits, null);
   }
 
   public TruncateTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      boolean preserveSplits, ProcedurePrepareLatch latch) throws IOException {
+      boolean preserveSplits, ProcedurePrepareLatch latch) {
     this.tableName = tableName;
     this.preserveSplits = preserveSplits;
     this.user = env.getRequestUser();


[2/5] hbase git commit: HBASE-16522 Procedure v2 - Cache system user and avoid IOException

Posted by mb...@apache.org.
HBASE-16522 Procedure v2 - Cache system user and avoid IOException


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/2250e571
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/2250e571
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/2250e571

Branch: refs/heads/branch-1.1
Commit: 2250e57187832f99e555c514dd9ad43fee054b41
Parents: 2a4b455
Author: Matteo Bertozzi <ma...@cloudera.com>
Authored: Tue Aug 30 11:53:15 2016 -0700
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Tue Aug 30 12:06:39 2016 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/security/Superusers.java | 15 ++++++++++-----
 .../master/procedure/AddColumnFamilyProcedure.java   |  6 ++----
 .../hbase/master/procedure/CreateTableProcedure.java |  6 ++----
 .../procedure/DeleteColumnFamilyProcedure.java       |  6 ++----
 .../hbase/master/procedure/DeleteTableProcedure.java |  5 ++---
 .../master/procedure/DisableTableProcedure.java      | 15 ++++-----------
 .../hbase/master/procedure/EnableTableProcedure.java | 14 ++++----------
 .../hbase/master/procedure/MasterProcedureEnv.java   |  6 +++---
 .../procedure/ModifyColumnFamilyProcedure.java       |  6 ++----
 .../hbase/master/procedure/ModifyTableProcedure.java |  4 +---
 .../master/procedure/TruncateTableProcedure.java     |  2 +-
 11 files changed, 33 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
index b4ce36e..e88d205 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
@@ -42,6 +42,7 @@ public final class Superusers {
 
   private static List<String> superUsers;
   private static List<String> superGroups;
+  private static User systemUser;
 
   private Superusers(){}
 
@@ -55,17 +56,17 @@ public final class Superusers {
   public static void initialize(Configuration conf) throws IOException {
     superUsers = new ArrayList<>();
     superGroups = new ArrayList<>();
-    User user = User.getCurrent();
+    systemUser = User.getCurrent();
 
-    if (user == null) {
+    if (systemUser == null) {
       throw new IllegalStateException("Unable to obtain the current user, "
         + "authorization checks for internal operations will not work correctly!");
     }
 
     if (LOG.isTraceEnabled()) {
-      LOG.trace("Current user name is " + user.getShortName());
+      LOG.trace("Current user name is " + systemUser.getShortName());
     }
-    String currentUser = user.getShortName();
+    String currentUser = systemUser.getShortName();
     String[] superUserList = conf.getStrings(SUPERUSER_CONF_KEY, new String[0]);
     for (String name : superUserList) {
       if (AuthUtil.isGroupPrincipal(name)) {
@@ -121,4 +122,8 @@ public final class Superusers {
       return false;
     }
   }
-}
\ No newline at end of file
+
+  public static User getSystemUser() {
+    return systemUser;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
index e0f37e4..260bc81 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
@@ -67,10 +67,8 @@ public class AddColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public AddColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final HColumnDescriptor cfDescriptor) throws IOException {
+  public AddColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final HColumnDescriptor cfDescriptor) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
index 7300f88..c766c36 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
@@ -76,15 +76,13 @@ public class CreateTableProcedure
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
-      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions)
-      throws IOException {
+      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions) {
     this(env, hTableDescriptor, newRegions, null);
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
       final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions,
-      final ProcedurePrepareLatch syncLatch)
-      throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.hTableDescriptor = hTableDescriptor;
     this.newRegions = newRegions != null ? Lists.newArrayList(newRegions) : null;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
index 75ec313..ebd9fd4 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
@@ -68,10 +68,8 @@ public class DeleteColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public DeleteColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final byte[] familyName) throws IOException {
+  public DeleteColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final byte[] familyName) {
     this.tableName = tableName;
     this.familyName = familyName;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
index 5ce5081..45cb2eb 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
@@ -74,13 +74,12 @@ public class DeleteTableProcedure
     syncLatch = null;
   }
 
-  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName)
-      throws IOException {
+  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName) {
     this(env, tableName, null);
   }
 
   public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.user = env.getRequestUser().getUGI();
     this.setOwner(this.user.getShortUserName());

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
index 0e0abbb..1f1bdaa 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
@@ -84,12 +84,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -98,13 +95,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
index 963bc14..0f08026 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
@@ -82,12 +82,9 @@ public class EnableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -98,11 +95,8 @@ public class EnableTableProcedure
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
index b440709..5308415 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
@@ -34,7 +34,7 @@ import org.apache.hadoop.hbase.master.MasterServices;
 import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;
 import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;
 import org.apache.hadoop.hbase.security.User;
-import org.apache.hadoop.hbase.security.UserProvider;
+import org.apache.hadoop.hbase.security.Superusers;
 import org.apache.hadoop.hbase.util.CancelableProgressable;
 import org.apache.hadoop.hbase.util.FSUtils;
 
@@ -94,10 +94,10 @@ public class MasterProcedureEnv {
       master.getTableLockManager());
   }
 
-  public User getRequestUser() throws IOException {
+  public User getRequestUser() {
     User user = RpcServer.getRequestUser();
     if (user == null) {
-      user = UserProvider.instantiate(getMasterConfiguration()).getCurrent();
+      user = Superusers.getSystemUser();
     }
     return user;
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
index a74d6ad..d5e8caf 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
@@ -65,10 +65,8 @@ public class ModifyColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public ModifyColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final HColumnDescriptor cfDescriptor) throws IOException {
+  public ModifyColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final HColumnDescriptor cfDescriptor) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
index 0be797f..4a5e104 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
@@ -71,9 +71,7 @@ public class ModifyTableProcedure
     initilize();
   }
 
-  public ModifyTableProcedure(
-    final MasterProcedureEnv env,
-    final HTableDescriptor htd) throws IOException {
+  public ModifyTableProcedure(final MasterProcedureEnv env, final HTableDescriptor htd) {
     initilize();
     this.modifiedHTableDescriptor = htd;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/2250e571/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
index c745107..1df18f4 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
@@ -61,7 +61,7 @@ public class TruncateTableProcedure
   }
 
   public TruncateTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      boolean preserveSplits) throws IOException {
+      boolean preserveSplits) {
     this.tableName = tableName;
     this.preserveSplits = preserveSplits;
     this.user = env.getRequestUser().getUGI();


[5/5] hbase git commit: HBASE-16522 Procedure v2 - Cache system user and avoid IOException

Posted by mb...@apache.org.
HBASE-16522 Procedure v2 - Cache system user and avoid IOException


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/af59baba
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/af59baba
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/af59baba

Branch: refs/heads/branch-1.3
Commit: af59baba19050b90c9c21f138e0a3b5e024dd5e2
Parents: f4b6fdc
Author: Matteo Bertozzi <ma...@cloudera.com>
Authored: Tue Aug 30 11:53:15 2016 -0700
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Tue Aug 30 15:46:34 2016 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/security/Superusers.java | 13 +++++++++----
 .../master/procedure/AddColumnFamilyProcedure.java   |  6 ++----
 .../master/procedure/CreateNamespaceProcedure.java   |  5 ++---
 .../hbase/master/procedure/CreateTableProcedure.java |  6 ++----
 .../procedure/DeleteColumnFamilyProcedure.java       |  6 ++----
 .../master/procedure/DeleteNamespaceProcedure.java   |  4 +---
 .../hbase/master/procedure/DeleteTableProcedure.java |  5 ++---
 .../master/procedure/DisableTableProcedure.java      | 15 ++++-----------
 .../hbase/master/procedure/EnableTableProcedure.java | 15 ++++-----------
 .../hbase/master/procedure/MasterProcedureEnv.java   |  6 +++---
 .../procedure/ModifyColumnFamilyProcedure.java       |  6 ++----
 .../master/procedure/ModifyNamespaceProcedure.java   |  5 ++---
 .../hbase/master/procedure/ModifyTableProcedure.java |  4 +---
 .../master/procedure/TruncateTableProcedure.java     |  2 +-
 14 files changed, 37 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
index 0f28e26..e50f0dc 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/security/Superusers.java
@@ -42,6 +42,7 @@ public final class Superusers {
 
   private static List<String> superUsers;
   private static List<String> superGroups;
+  private static User systemUser;
 
   private Superusers(){}
 
@@ -55,17 +56,17 @@ public final class Superusers {
   public static void initialize(Configuration conf) throws IOException {
     superUsers = new ArrayList<>();
     superGroups = new ArrayList<>();
-    User user = User.getCurrent();
+    systemUser = User.getCurrent();
 
-    if (user == null) {
+    if (systemUser == null) {
       throw new IllegalStateException("Unable to obtain the current user, "
         + "authorization checks for internal operations will not work correctly!");
     }
 
     if (LOG.isTraceEnabled()) {
-      LOG.trace("Current user name is " + user.getShortName());
+      LOG.trace("Current user name is " + systemUser.getShortName());
     }
-    String currentUser = user.getShortName();
+    String currentUser = systemUser.getShortName();
     String[] superUserList = conf.getStrings(SUPERUSER_CONF_KEY, new String[0]);
     for (String name : superUserList) {
       if (AuthUtil.isGroupPrincipal(name)) {
@@ -125,4 +126,8 @@ public final class Superusers {
   public static List<String> getSuperUsers() {
     return superUsers;
   }
+
+  public static User getSystemUser() {
+    return systemUser;
+  }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
index 9905767..a7e34d8 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.java
@@ -66,10 +66,8 @@ public class AddColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public AddColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final HColumnDescriptor cfDescriptor) throws IOException {
+  public AddColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final HColumnDescriptor cfDescriptor) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
index 1dd39d9..e873156 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateNamespaceProcedure.java
@@ -55,9 +55,8 @@ public class CreateNamespaceProcedure
     this.traceEnabled = null;
   }
 
-  public CreateNamespaceProcedure(
-      final MasterProcedureEnv env,
-      final NamespaceDescriptor nsDescriptor) throws IOException {
+  public CreateNamespaceProcedure(final MasterProcedureEnv env,
+      final NamespaceDescriptor nsDescriptor) {
     this.nsDescriptor = nsDescriptor;
     this.traceEnabled = null;
     this.setOwner(env.getRequestUser().getUGI().getShortUserName());

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
index c351cea..74433b4 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/CreateTableProcedure.java
@@ -77,15 +77,13 @@ public class CreateTableProcedure
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
-      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions)
-      throws IOException {
+      final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions) {
     this(env, hTableDescriptor, newRegions, null);
   }
 
   public CreateTableProcedure(final MasterProcedureEnv env,
       final HTableDescriptor hTableDescriptor, final HRegionInfo[] newRegions,
-      final ProcedurePrepareLatch syncLatch)
-      throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.hTableDescriptor = hTableDescriptor;
     this.newRegions = newRegions != null ? Lists.newArrayList(newRegions) : null;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
index 54d8fe5..bb8a201 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteColumnFamilyProcedure.java
@@ -67,10 +67,8 @@ public class DeleteColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public DeleteColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final byte[] familyName) throws IOException {
+  public DeleteColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final byte[] familyName) {
     this.tableName = tableName;
     this.familyName = familyName;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
index 3a4ccbb..a7ebc30 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteNamespaceProcedure.java
@@ -63,9 +63,7 @@ public class DeleteNamespaceProcedure
     this.traceEnabled = null;
   }
 
-  public DeleteNamespaceProcedure(
-      final MasterProcedureEnv env,
-      final String namespaceName) throws IOException {
+  public DeleteNamespaceProcedure(final MasterProcedureEnv env, final String namespaceName) {
     this.namespaceName = namespaceName;
     this.nsDescriptor = null;
     this.traceEnabled = null;

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
index 38b83a2..44dde9e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DeleteTableProcedure.java
@@ -74,13 +74,12 @@ public class DeleteTableProcedure
     syncLatch = null;
   }
 
-  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName)
-      throws IOException {
+  public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName) {
     this(env, tableName, null);
   }
 
   public DeleteTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+      final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.user = env.getRequestUser().getUGI();
     this.setOwner(this.user.getShortUserName());

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
index 9491fb1..185c0d0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
@@ -83,12 +83,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -97,13 +94,9 @@ public class DisableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public DisableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public DisableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
index e7d6685..14f68e2 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
@@ -82,12 +82,9 @@ public class EnableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck) {
     this(env, tableName, skipTableStateCheck, null);
   }
 
@@ -96,13 +93,9 @@ public class EnableTableProcedure
    * @param env MasterProcedureEnv
    * @param tableName the table to operate on
    * @param skipTableStateCheck whether to check table state
-   * @throws IOException
    */
-  public EnableTableProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final boolean skipTableStateCheck,
-      final ProcedurePrepareLatch syncLatch) throws IOException {
+  public EnableTableProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final boolean skipTableStateCheck, final ProcedurePrepareLatch syncLatch) {
     this.tableName = tableName;
     this.skipTableStateCheck = skipTableStateCheck;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
index 090b8cc..3911f54 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.java
@@ -36,7 +36,7 @@ import org.apache.hadoop.hbase.procedure2.Procedure;
 import org.apache.hadoop.hbase.procedure2.store.ProcedureStore;
 import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;
 import org.apache.hadoop.hbase.security.User;
-import org.apache.hadoop.hbase.security.UserProvider;
+import org.apache.hadoop.hbase.security.Superusers;
 import org.apache.hadoop.hbase.util.CancelableProgressable;
 import org.apache.hadoop.hbase.util.FSUtils;
 
@@ -96,10 +96,10 @@ public class MasterProcedureEnv {
       master.getTableLockManager());
   }
 
-  public User getRequestUser() throws IOException {
+  public User getRequestUser() {
     User user = RpcServer.getRequestUser();
     if (user == null) {
-      user = UserProvider.instantiate(getMasterConfiguration()).getCurrent();
+      user = Superusers.getSystemUser();
     }
     return user;
   }

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
index fd212eb..5e81dbf 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyColumnFamilyProcedure.java
@@ -64,10 +64,8 @@ public class ModifyColumnFamilyProcedure
     this.traceEnabled = null;
   }
 
-  public ModifyColumnFamilyProcedure(
-      final MasterProcedureEnv env,
-      final TableName tableName,
-      final HColumnDescriptor cfDescriptor) throws IOException {
+  public ModifyColumnFamilyProcedure(final MasterProcedureEnv env, final TableName tableName,
+      final HColumnDescriptor cfDescriptor) {
     this.tableName = tableName;
     this.cfDescriptor = cfDescriptor;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
index d8b1bed..5d9548b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyNamespaceProcedure.java
@@ -55,9 +55,8 @@ public class ModifyNamespaceProcedure
     this.traceEnabled = null;
   }
 
-  public ModifyNamespaceProcedure(
-      final MasterProcedureEnv env,
-      final NamespaceDescriptor newNsDescriptor) throws IOException {
+  public ModifyNamespaceProcedure(final MasterProcedureEnv env,
+      final NamespaceDescriptor newNsDescriptor) {
     this.oldNsDescriptor = null;
     this.newNsDescriptor = newNsDescriptor;
     this.traceEnabled = null;

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
index f1f6457..b04a638 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ModifyTableProcedure.java
@@ -72,9 +72,7 @@ public class ModifyTableProcedure
     initilize();
   }
 
-  public ModifyTableProcedure(
-    final MasterProcedureEnv env,
-    final HTableDescriptor htd) throws IOException {
+  public ModifyTableProcedure(final MasterProcedureEnv env, final HTableDescriptor htd) {
     initilize();
     this.modifiedHTableDescriptor = htd;
     this.user = env.getRequestUser().getUGI();

http://git-wip-us.apache.org/repos/asf/hbase/blob/af59baba/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
index 3623f35..3a3739d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/TruncateTableProcedure.java
@@ -61,7 +61,7 @@ public class TruncateTableProcedure
   }
 
   public TruncateTableProcedure(final MasterProcedureEnv env, final TableName tableName,
-      boolean preserveSplits) throws IOException {
+      boolean preserveSplits) {
     this.tableName = tableName;
     this.preserveSplits = preserveSplits;
     this.user = env.getRequestUser().getUGI();