Hadoop HDFS
  1. Hadoop HDFS
  2. HDFS-2443

A bug in unit test: TestDFSShell.testPut()

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 0.21.0
    • Fix Version/s: None
    • Component/s: test
    • Labels:
      None

      Description

      testPut() tries to copy a file from local to a destination "dst" in HDFS, and uses a SecurityManager to capture this action. The new SecurityManager filters out this copy action from all actions it receives , and starts a second thread to copy a second file to the same destination "dst" in HDFS. The main thread sleeps 5 seconds immediately after. I think the original purpose is that, the copy from the main thread should succeed, and the second copy from the new thread should fail because the "dst" is being written. My guess can be confirmed by the asserts around these codes.

      However, the filter in the new SecurityManager is not right. It tries to find "FileUtil.copyContent", but these is no method called copyContent in FileUtil, and therefore the second thread is never started. Although the asserts always succeed, this code is not able to find bugs in this area.

      I also debugged it, and I can never hit the break points in the second copy thread. Even though I changed the filter from "FileUtil.copyContent" to "FileUtil.copy" and successfully started the second thread, the second thread succeeds before the main thread resumes, which is the opposite of the logic.

        Activity

        Hou Song created issue -
        Hide
        Hou Song added a comment -

        Change the filter "FileUtil.copyContent" to "FileUtil.copy", so that the second copy thread can be started. Move the 5 second wait to the second copy so that the first copy in the main thread finishes successful, and the second copy fails, which is logically correct according to asserts around the codes.

        Show
        Hou Song added a comment - Change the filter "FileUtil.copyContent" to "FileUtil.copy", so that the second copy thread can be started. Move the 5 second wait to the second copy so that the first copy in the main thread finishes successful, and the second copy fails, which is logically correct according to asserts around the codes.
        Hou Song made changes -
        Field Original Value New Value
        Attachment HDFS-2443.patch [ 12501583 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Hou Song
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development