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