Since we are now removing the reference to a client when all streams are closed, the renwer's loop exits right away (clientsRunning() is false when there is no more clients left). In order to honor the grace period, I had to move the check and set emptyTime so that the thread is kept alive until isRenewerExpired() returns true.
The failed test cases don't seem to be related to the patch and I could not reproduce the failures.
- TestFileAppend4 ran sucessfully, but it timed out because Datanode didn't shutdown.
012-07-17 01:58:56,034 INFO datanode.DataNode (DataNode.java:shutdown(1079))
- Waiting for threadgroup to exit, active threads is 1
- TestBlocksWithNotEnoughRacks: MiniDFSCluster exited in the middle of test.
Regarding null authority, there is a check for nameNodeUri being null, it will throw an IllegalArgumentException. If the uri is not null, but the authority is null, it also won't go far because proxy won't get created properly. Since DFSClient blows up anyway well before a
is created, the content of variable,
, being "null" or null does not matter.
I will upload the updated patch soon.