Hadoop HDFS
  1. Hadoop HDFS
  2. HDFS-1978

All but first option in LIBHDFS_OPTS is ignored

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.21.0
    • Fix Version/s: 0.22.0
    • Component/s: libhdfs
    • Labels:
      None
    • Environment:

      RHEL 5.5
      JDK 1.6.0_24

    • Hadoop Flags:
      Reviewed

      Description

      In getJNIEnv, we go though LIBHDFS_OPTS with strok and count the number of args. Then create an array of options based on that information. But when we actually setup the options we only the first arg. I believe the fix is pasted inline.

      Index: src/c++/libhdfs/hdfsJniHelper.c
      ===================================================================
      --- src/c++/libhdfs/hdfsJniHelper.c	(revision 1124544)
      +++ src/c++/libhdfs/hdfsJniHelper.c	(working copy)
      @@ -442,6 +442,7 @@
                   int argNum = 1;
                   for (;argNum < noArgs ; argNum++) {
                       options[argNum].optionString = result; //optHadoopArg;
      +                result = strtok( NULL, jvmArgDelims);
                   }
               }
      
      1. HDFS-1978.0.patch
        1 kB
        Brock Noland
      2. hdfs-1978-1.patch
        3 kB
        Eli Collins

        Activity

        Hide
        Hudson added a comment -

        Integrated in Hadoop-Hdfs-22-branch #61 (See https://builds.apache.org/hudson/job/Hadoop-Hdfs-22-branch/61/)

        Show
        Hudson added a comment - Integrated in Hadoop-Hdfs-22-branch #61 (See https://builds.apache.org/hudson/job/Hadoop-Hdfs-22-branch/61/ )
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Hdfs-trunk #675 (See https://builds.apache.org/hudson/job/Hadoop-Hdfs-trunk/675/)
        HDFS-1978. All but first option in LIBHDFS_OPTS is ignored. Contributed by Eli Collins

        eli : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1126312
        Files :

        • /hadoop/hdfs/trunk/src/c++/libhdfs/hdfsJniHelper.c
        • /hadoop/hdfs/trunk/CHANGES.txt
        Show
        Hudson added a comment - Integrated in Hadoop-Hdfs-trunk #675 (See https://builds.apache.org/hudson/job/Hadoop-Hdfs-trunk/675/ ) HDFS-1978 . All but first option in LIBHDFS_OPTS is ignored. Contributed by Eli Collins eli : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1126312 Files : /hadoop/hdfs/trunk/src/c++/libhdfs/hdfsJniHelper.c /hadoop/hdfs/trunk/CHANGES.txt
        Hide
        Hudson added a comment -

        Integrated in Hadoop-Hdfs-trunk-Commit #679 (See https://builds.apache.org/hudson/job/Hadoop-Hdfs-trunk-Commit/679/)
        HDFS-1978. All but first option in LIBHDFS_OPTS is ignored. Contributed by Eli Collins

        eli : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1126312
        Files :

        • /hadoop/hdfs/trunk/src/c++/libhdfs/hdfsJniHelper.c
        • /hadoop/hdfs/trunk/CHANGES.txt
        Show
        Hudson added a comment - Integrated in Hadoop-Hdfs-trunk-Commit #679 (See https://builds.apache.org/hudson/job/Hadoop-Hdfs-trunk-Commit/679/ ) HDFS-1978 . All but first option in LIBHDFS_OPTS is ignored. Contributed by Eli Collins eli : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1126312 Files : /hadoop/hdfs/trunk/src/c++/libhdfs/hdfsJniHelper.c /hadoop/hdfs/trunk/CHANGES.txt
        Hide
        Eli Collins added a comment -

        I've committed this to branch 22 and trunk. Thanks Todd.

        Show
        Eli Collins added a comment - I've committed this to branch 22 and trunk. Thanks Todd.
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12480078/hdfs-1978-1.patch
        against trunk revision 1125879.

        +1 @author. The patch does not contain any @author tags.

        -1 tests included. The patch doesn't appear to include any new or modified tests.
        Please justify why no new tests are needed for this patch.
        Also please list what manual steps were performed to verify this patch.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        -1 core tests. The patch failed these core unit tests:
        org.apache.hadoop.hdfs.TestDFSStorageStateRecovery

        +1 contrib tests. The patch passed contrib unit tests.

        +1 system test framework. The patch passed system test framework compile.

        Test results: https://builds.apache.org/hudson/job/PreCommit-HDFS-Build/609//testReport/
        Findbugs warnings: https://builds.apache.org/hudson/job/PreCommit-HDFS-Build/609//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
        Console output: https://builds.apache.org/hudson/job/PreCommit-HDFS-Build/609//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12480078/hdfs-1978-1.patch against trunk revision 1125879. +1 @author. The patch does not contain any @author tags. -1 tests included. The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. -1 core tests. The patch failed these core unit tests: org.apache.hadoop.hdfs.TestDFSStorageStateRecovery +1 contrib tests. The patch passed contrib unit tests. +1 system test framework. The patch passed system test framework compile. Test results: https://builds.apache.org/hudson/job/PreCommit-HDFS-Build/609//testReport/ Findbugs warnings: https://builds.apache.org/hudson/job/PreCommit-HDFS-Build/609//artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Console output: https://builds.apache.org/hudson/job/PreCommit-HDFS-Build/609//console This message is automatically generated.
        Hide
        Todd Lipcon added a comment -

        +1, looks good to me.

        Show
        Todd Lipcon added a comment - +1, looks good to me.
        Hide
        Eli Collins added a comment -

        I tested this patch by export LIBHDFS_OPTS="-Xms64m -Xmx128m" before mounting fuse-dfs and verified that both the arguments for min and max heap size were respected.

        Show
        Eli Collins added a comment - I tested this patch by export LIBHDFS_OPTS="-Xms64m -Xmx128m" before mounting fuse-dfs and verified that both the arguments for min and max heap size were respected.
        Hide
        Eli Collins added a comment -

        Updated patch attach. Add missing free to hadoopJvmArgs and uses reentrant strtok.

        Show
        Eli Collins added a comment - Updated patch attach. Add missing free to hadoopJvmArgs and uses reentrant strtok.
        Hide
        Brock Noland added a comment -

        The patch attached works on my system (builds and tests) and respects multiple arguments.

        Should be be calling free(optHadoopClassPath); as we are passing that into the VM? This code is nearby but is unchanged in my patch.

        Show
        Brock Noland added a comment - The patch attached works on my system (builds and tests) and respects multiple arguments. Should be be calling free(optHadoopClassPath); as we are passing that into the VM? This code is nearby but is unchanged in my patch.
        Hide
        Brock Noland added a comment -

        Actually I think strtok changes the original string so the above diff does not represent a solution. The problem remains the same.

        Show
        Brock Noland added a comment - Actually I think strtok changes the original string so the above diff does not represent a solution. The problem remains the same.

          People

          • Assignee:
            Eli Collins
            Reporter:
            Brock Noland
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development