From 09aaa68be468ee9f18701c067d24fdd85ba13ee5 Mon Sep 17 00:00:00 2001 From: Duo Zhang Date: Fri, 13 Nov 2020 15:19:09 +0800 Subject: [PATCH] HBASE-25255 Addendum wait for meta loaded instead of master initialized for system table creation --- .../hbase/master/procedure/CreateTableProcedure.java | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 b8ce2535238..9ffe3c6e22f 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 @@ -234,6 +234,16 @@ public class CreateTableProcedure } } + @Override + protected boolean waitInitialized(MasterProcedureEnv env) { + if (getTableName().isSystemTable()) { + // Creating system table is part of the initialization, so only wait for meta loaded instead + // of waiting for master fully initialized. + return env.getAssignmentManager().waitMetaLoaded(this); + } + return super.waitInitialized(env); + } + private boolean prepareCreate(final MasterProcedureEnv env) throws IOException { final TableName tableName = getTableName(); if (env.getMasterServices().getTableDescriptors().exists(tableName)) {