HBASE-27754 generateMissingTableDescriptorFile should throw write permission error and fail (#114)

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 @@
         }
         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)) {