diff --git a/hbase-hbck2/src/main/java/org/apache/hbase/HBCKFsTableDescriptors.java b/hbase-hbck2/src/main/java/org/apache/hbase/HBCKFsTableDescriptors.java index 1fe2cad..0c07f95 100644 --- a/hbase-hbck2/src/main/java/org/apache/hbase/HBCKFsTableDescriptors.java +++ b/hbase-hbck2/src/main/java/org/apache/hbase/HBCKFsTableDescriptors.java @@ -36,6 +36,7 @@ import org.apache.hadoop.hbase.client.TableDescriptorBuilder; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.hadoop.security.AccessControlException; import org.apache.yetus.audience.InterfaceAudience; import org.slf4j.Logger; @@ -369,6 +370,11 @@ private static Path writeTableDescriptor(final FileSystem fs, } LOG.debug("Wrote into " + tableInfoDirPath); } catch (IOException ioe) { + // fail-fast and get out of retry loop as user does not have privilege to write to hdfs + // hence, no point in retrying + if(ioe instanceof AccessControlException){ + throw ioe; + } // Presume clash of names or something; go around again. LOG.debug("Failed write and/or rename; retrying", ioe); if (!HBCKFsUtils.deleteDirectory(fs, tempPath)) {