Details
-
Bug
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Several Junit tests passes a non-zero port number to ServerSocketUtil.getPort().
I noticed that those non-zero values are shared between test methods. Based, on the implementation of ServerSocketUtil.getPort(), the port is checked then, the socket is closed immediately.
Two concurrent tests can have the same port number, but one of them fails with binding exceptions.
Passing a zero port number reduces the probability of returning the same port numbers in two different tests, because the ServerSocketUtil.getPort() will call a random port number.
An example of that is as described in HDFS-15618. testRead() between TestBlockTokenWithDFSStriped and TestBlockTokenWithDFS where port 19870 is used by the two test cases.