Ivan Veselovsky created IGNITE-5193: ---------------------------------------
Summary: Hadoop: Ignite node fails to start if some , but not all HADOOP_XXX_HOME variables are set. Key: IGNITE-5193 URL: https://issues.apache.org/jira/browse/IGNITE-5193 Project: Ignite Issue Type: Bug Components: hadoop Affects Versions: 1.8 Reporter: Ivan Veselovsky Assignee: Ivan Veselovsky Fix For: 2.1 Ignite node fails to start if some , but not all 3 HADOOP_XXX_HOME variables are set (see trace below). This is caused by the following gap in Ignite logic: org.apache.ignite.internal.processors.hadoop.HadoopClasspathUtils#exists returns {true} for empty String argument. For the unset location variables the value is empty string, but {org.apache.ignite.internal.processors.hadoop.HadoopLocations#xxxxxExists} gets {true}. This is the cause of the problem. {code} [06:09:42] Security status [authentication=off, tls/ssl=off] [06:17:23,822][ERROR][main][IgniteKernal] Got exception while starting (will rollback startup routine). java.lang.RuntimeException: class org.apache.ignite.IgniteCheckedException: Failed to resolve Hadoop JAR locations: Failed to get directory files [dir=] at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.addHadoopUrls(HadoopClassLoader.java:422) at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.<init>(HadoopClassLoader.java:134) at org.apache.ignite.internal.processors.hadoop.HadoopHelperImpl.commonClassLoader(HadoopHelperImpl.java:78) at org.apache.ignite.hadoop.fs.IgniteHadoopIgfsSecondaryFileSystem.start(IgniteHadoopIgfsSecondaryFileSystem.java:254) at org.apache.ignite.internal.processors.igfs.IgfsImpl.<init>(IgfsImpl.java:186) at org.apache.ignite.internal.processors.igfs.IgfsContext.<init>(IgfsContext.java:101) at org.apache.ignite.internal.processors.igfs.IgfsProcessor.start(IgfsProcessor.java:128) at org.apache.ignite.internal.IgniteKernal.startProcessor(IgniteKernal.java:1638) at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:900) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1799) at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1602) at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:964) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:850) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:749) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:619) at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:589) at org.apache.ignite.Ignition.start(Ignition.java:347) at org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:302) Caused by: class org.apache.ignite.IgniteCheckedException: Failed to resolve Hadoop JAR locations: Failed to get directory files [dir=] at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.hadoopUrls(HadoopClassLoader.java:456) at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.addHadoopUrls(HadoopClassLoader.java:419) ... 18 more Caused by: java.io.IOException: Failed to get directory files [dir=] at org.apache.ignite.internal.processors.hadoop.HadoopClasspathUtils$SearchDirectory.files(HadoopClasspathUtils.java:344) at org.apache.ignite.internal.processors.hadoop.HadoopClasspathUtils.classpathForClassLoader(HadoopClasspathUtils.java:68) at org.apache.ignite.internal.processors.hadoop.HadoopClassLoader.hadoopUrls(HadoopClassLoader.java:453) ... 19 more {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)