Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-2443

A bug in unit test: TestDFSShell.testPut()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.21.0
    • None
    • test
    • 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.

      Attachments

        1. HDFS-2443.patch
          1 kB
          Hou Song

        Activity

          People

            Unassigned Unassigned
            thehousong Hou Song
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: