Browse Source

HADOOP-873. Pass java.library.path correctly to child processes. Contributed by Owen.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@494676 13f79535-47bb-0310-9956-ffa450edef68
Doug Cutting 18 years ago
parent
commit
737cc2493f

+ 3 - 0
CHANGES.txt

@@ -29,6 +29,9 @@ Trunk (unreleased changes)
  9. HADOOP-865.  Fix S3 FileSystem so that partially created files can
     be deleted.  (Tom White via cutting)
 
+10. HADOOP-873.	 Pass java.library.path correctly to child processes.
+    (omalley via cutting)
+
 
 Release 0.10.0 - 2007-01-05
 

+ 7 - 6
src/java/org/apache/hadoop/mapred/TaskRunner.java

@@ -204,17 +204,18 @@ abstract class TaskRunner extends Thread {
       // Add classpath.
       vargs.add("-classpath");
       vargs.add(classPath.toString());
-      // Add main class and its arguments 
-      vargs.add(TaskTracker.Child.class.getName());  // main of Child
-      vargs.add(tracker.taskReportPort + "");        // pass umbilical port
-      vargs.add(t.getTaskId());                      // pass task identifier
-      
+
       // Add java.library.path; necessary for native-hadoop libraries
       String libraryPath = System.getProperty("java.library.path");
       if (libraryPath != null) {
           vargs.add("-Djava.library.path=" + libraryPath);
       }
-      
+
+      // Add main class and its arguments 
+      vargs.add(TaskTracker.Child.class.getName());  // main of Child
+      vargs.add(tracker.taskReportPort + "");        // pass umbilical port
+      vargs.add(t.getTaskId());                      // pass task identifier
+
       // Run java
       runChild((String[])vargs.toArray(new String[0]), workDir);
     } catch (FSError e) {

+ 1 - 0
src/java/org/apache/hadoop/util/NativeCodeLoader.java

@@ -44,6 +44,7 @@ public class NativeCodeLoader {
     } catch (Throwable t) {
       // Ignore failure to load
       LOG.debug("Failed to load native-hadoop with error: " + t);
+      LOG.debug("java.library.path=" + System.getProperty("java.library.path"));
     }
     
     if (!nativeCodeLoaded) {