Hadoop HDFS
  1. Hadoop HDFS
  2. HDFS-1157

Modifications introduced by HDFS-1150 are breaking aspect's bindings

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.22.0
    • Fix Version/s: 0.22.0
    • Component/s: test
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Tags:
      herriot

      Description

      Modifications introduced by HDFS-1150 to DataNode class brakes the binding of some of Herriot (test framework) bindings. This JIRA is to track the fix.

      1. hdfs-1157.patch
        2 kB
        Konstantin Boudnik

        Issue Links

          Activity

          Hide
          Konstantin Boudnik added a comment -

          Patch to address the problem.
          It can't be verified until HDFS-1150 is committed to the trunk

          Show
          Konstantin Boudnik added a comment - Patch to address the problem. It can't be verified until HDFS-1150 is committed to the trunk
          Hide
          Konstantin Boudnik added a comment -

          I have verified that the patch works for current HDFS trunk despite that HDFS-1150's patch for trunk was a little different than for y20. So, the patch is still valid.

          The reason for the modification is as follows: the call to the original constructor with two parameters has been replaced with call to the new one

                return new DataNode(conf, dirs, resources);
          

          While this is a totally compatible change from the Java perspective, one of Herriot aspects was bound to the 'call to the constructor with 2 params' and has been broken as the result of the change

          Show
          Konstantin Boudnik added a comment - I have verified that the patch works for current HDFS trunk despite that HDFS-1150 's patch for trunk was a little different than for y20. So, the patch is still valid. The reason for the modification is as follows: the call to the original constructor with two parameters has been replaced with call to the new one return new DataNode(conf, dirs, resources); While this is a totally compatible change from the Java perspective, one of Herriot aspects was bound to the 'call to the constructor with 2 params' and has been broken as the result of the change
          Hide
          Jakob Homan added a comment -

          Looks reasonable. +1 pending Hudson (assuming he showed up today...).

          Show
          Jakob Homan added a comment - Looks reasonable. +1 pending Hudson (assuming he showed up today...).
          Hide
          Kan Zhang added a comment -

          I've seen other AspectJ related test failures, many due to the same reason (method signatures got changed without changing the AspectJ matching logic). Do AspectJ based tests get run on Hudson (or required to pass)?

          Show
          Kan Zhang added a comment - I've seen other AspectJ related test failures, many due to the same reason (method signatures got changed without changing the AspectJ matching logic). Do AspectJ based tests get run on Hudson (or required to pass)?
          Hide
          Konstantin Boudnik added a comment -

          Like HDFS-1150 it affects only 0.22

          Show
          Konstantin Boudnik added a comment - Like HDFS-1150 it affects only 0.22
          Hide
          Konstantin Boudnik added a comment -

          I've seen other AspectJ related test failures, many due to the same reason (method signatures got changed without changing the AspectJ matching logic). Do AspectJ based tests get run on Hudson (or required to pass)?

          I believe you have confused this for fault injection tests. The latter are executed as a part of secondary build, but not the patch build. To prevent braking of the bindings between the code and test framework code (Herriot) I have HADOOP-6786 which still pending test-patch verification. That JIRA will include the guarantees that a patch doesn't break existing bindings for the test framework.

          Show
          Konstantin Boudnik added a comment - I've seen other AspectJ related test failures, many due to the same reason (method signatures got changed without changing the AspectJ matching logic). Do AspectJ based tests get run on Hudson (or required to pass)? I believe you have confused this for fault injection tests. The latter are executed as a part of secondary build, but not the patch build. To prevent braking of the bindings between the code and test framework code (Herriot) I have HADOOP-6786 which still pending test-patch verification. That JIRA will include the guarantees that a patch doesn't break existing bindings for the test framework.
          Hide
          Konstantin Boudnik added a comment -

          Although, test-patch doesn't verify instrumented build's binding (pending HADOOP-6786) I'll submit this for the sake of the process.

          Show
          Konstantin Boudnik added a comment - Although, test-patch doesn't verify instrumented build's binding (pending HADOOP-6786 ) I'll submit this for the sake of the process.
          Hide
          Hairong Kuang added a comment -

          Cos, Hudson does not work. Since this is a compilation bug, could you please just go ahead and commit it?

          Show
          Hairong Kuang added a comment - Cos, Hudson does not work. Since this is a compilation bug, could you please just go ahead and commit it?
          Hide
          Konstantin Boudnik added a comment -

          Per Hairong request and considering that this patch has been already verified in y20 release as working I have just committed it to unblock further HDFS development in trunk.

          Show
          Konstantin Boudnik added a comment - Per Hairong request and considering that this patch has been already verified in y20 release as working I have just committed it to unblock further HDFS development in trunk.
          Hide
          Hudson added a comment -

          Integrated in Hadoop-Hdfs-trunk-Commit #370 (See https://hudson.apache.org/hudson/job/Hadoop-Hdfs-trunk-Commit/370/)
          HDFS-1157. Modifications introduced by HDFS-1150 are breaking aspect's bindings. Contributed by Konstantin Boudnik

          Show
          Hudson added a comment - Integrated in Hadoop-Hdfs-trunk-Commit #370 (See https://hudson.apache.org/hudson/job/Hadoop-Hdfs-trunk-Commit/370/ ) HDFS-1157 . Modifications introduced by HDFS-1150 are breaking aspect's bindings. Contributed by Konstantin Boudnik

            People

            • Assignee:
              Konstantin Boudnik
              Reporter:
              Konstantin Boudnik
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development