A bug in unit test: TestDFSShell.testPut()
------------------------------------------
Key: HDFS-2443
URL: https://issues.apache.org/jira/browse/HDFS-2443
Project: Hadoop HDFS
Issue Type: Bug
Components: test
Affects Versions: 0.21.0
Reporter: Hou Song
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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira