[ https://issues.apache.org/jira/browse/HDFS-6731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brandon Li updated HDFS-6731: ----------------------------- Hadoop Flags: Reviewed > Run "hdfs zkfc-formatZK" on a server in a non-namenode will cause a null > pointer exception. > -------------------------------------------------------------------------------------------- > > Key: HDFS-6731 > URL: https://issues.apache.org/jira/browse/HDFS-6731 > Project: Hadoop HDFS > Issue Type: Bug > Components: auto-failover, ha > Affects Versions: 2.0.4-alpha, 2.4.0 > Reporter: WenJin Ma > Assignee: Masatake Iwasaki > Attachments: HADOOP-9603-0.patch > > Original Estimate: 168h > Remaining Estimate: 168h > > Run "hdfs zkfc-formatZK" on a server in a non-namenode will cause a null > pointer exception. > {code} > [hadoop@test bin]$ ./hdfs zkfc -formatZK > Exception in thread "main" java.lang.NullPointerException > at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187) > at > org.apache.hadoop.hdfs.tools.NNHAServiceTarget.<init>(NNHAServiceTarget.java:57) > at > org.apache.hadoop.hdfs.tools.DFSZKFailoverController.create(DFSZKFailoverController.java:128) > at > org.apache.hadoop.hdfs.tools.DFSZKFailoverController.main(DFSZKFailoverController.java:172) > {code} > I look at the code, found in the org.apache.hadoop.hdfs.DFSUtil.getSuffixIDs > () method does not make judgments on this issue. > {code} > static String[] getSuffixIDs(final Configuration conf, final String > addressKey, > String knownNsId, String knownNNId, > final AddressMatcher matcher) { > String nameserviceId = null; > String namenodeId = null; > int found = 0; > //......do something > if (found > 1) { // Only one address must match the local address > String msg = "Configuration has multiple addresses that match " > + "local node's address. Please configure the system with " > + DFS_NAMESERVICE_ID + " and " > + DFS_HA_NAMENODE_ID_KEY; > throw new HadoopIllegalArgumentException(msg); > } > // If the IP is not a local address, found to be less than 1. > // There should be throw an exception with clear message rather than > cause a null pointer exception. > return new String[] { nameserviceId, namenodeId }; > {code} -- This message was sent by Atlassian JIRA (v6.2#6252)