hemanthboyina created HDFS-14567: ------------------------------------ Summary: If kms-acls is failed to load, and it will never be reload Key: HDFS-14567 URL: https://issues.apache.org/jira/browse/HDFS-14567 Project: Hadoop HDFS Issue Type: Bug Reporter: hemanthboyina
Scenario : through one automation tool , we are generating kms-acls , though the generation of kms-acls is not completed , the system will detect a modification of kms-alcs and it will try to load Before getting the configuration we are modifiying last reload time , code shown below {code:java} private Configuration loadACLsFromFile() { LOG.debug("Loading ACLs file"); lastReload = System.currentTimeMillis(); Configuration conf = KMSConfiguration.getACLsConf(); // triggering the resource loading. conf.get(Type.CREATE.getAclConfigKey()); return conf; }{code} if the kms-acls file written within next 100ms , the changes will not be loaded as this condition "newer = f.lastModified() - time > 100" never meets because we have modified last reload time before getting the configuration {code:java} public static boolean isACLsFileNewer(long time) { boolean newer = false; String confDir = System.getProperty(KMS_CONFIG_DIR); if (confDir != null) { Path confPath = new Path(confDir); if (!confPath.isUriPathAbsolute()) { throw new RuntimeException("System property '" + KMS_CONFIG_DIR + "' must be an absolute path: " + confDir); } File f = new File(confDir, KMS_ACLS_XML); LOG.trace("Checking file {}, modification time is {}, last reload time is" + " {}", f.getPath(), f.lastModified(), time); // at least 100ms newer than time, we do this to ensure the file // has been properly closed/flushed newer = f.lastModified() - time > 100; } return newer; } {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org