[ https://issues.apache.org/jira/browse/HDFS-17665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ConfX resolved HDFS-17665. -------------------------- Resolution: Invalid > Null Pointer Exception in ZKFailoverController due to integer overflow in > parseInt > ---------------------------------------------------------------------------------- > > Key: HDFS-17665 > URL: https://issues.apache.org/jira/browse/HDFS-17665 > Project: Hadoop HDFS > Issue Type: Bug > Components: common > Reporter: ConfX > Assignee: ConfX > Priority: Critical > > h3. *What Happened:* > A null pointer exception occurs when trying to shutdown healthMonitor. > healthMonitor is not initialized if the ha.health-monitor.rpc-timeout.ms is > set to 4294967295. The healthMonitor constructor uses parseInt() to parse > configuration values and this value overflows for parseInt and throws an > exception during healthMonitor initialization. > h3. *Buggy Code:* > > {code:java} > try { > initRPC(); > initHM(); // -> This throws a java.Lang.NumberFormatException and > healthMonitor is not intialized > startRPC(); > mainLoop(); > } catch (Exception e) { > LOG.error("The failover controller encounters runtime error: ", e); > throw e; > } > ... > > healthMonitor.shutdown(); // -> NPE if healthMonitor is not intialized > healthMonitor.join(); > } {code} > > > {code:java} > Caused by: java.lang.NullPointerException > at > org.apache.hadoop.ha.ZKFailoverController.doRun(ZKFailoverController.java:266) > at > org.apache.hadoop.ha.ZKFailoverController.access$000(ZKFailoverController.java:65) > at > org.apache.hadoop.ha.ZKFailoverController$1.run(ZKFailoverController.java:186) > at > org.apache.hadoop.ha.ZKFailoverController$1.run(ZKFailoverController.java:182) > at > org.apache.hadoop.security.SecurityUtil.doAsLoginUserOrFatal(SecurityUtil.java:520) > at > org.apache.hadoop.ha.ZKFailoverController.run(ZKFailoverController.java:182) > at > org.apache.hadoop.ha.MiniZKFCCluster$DummyZKFCThread.doWork(MiniZKFCCluster.java:301) > at > org.apache.hadoop.test.MultithreadedTestUtil$TestingThread.run(MultithreadedTestUtil.java:189) > {code} > h3. *How to Reproduce:* > (1) Set ha.health-monitor.rpc-timeout.ms to 4294967295. > (2) Run: test: > org.apache.hadoop.ha.TestZKFailoverController#testVerifyObserverState > > > -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org