lzx404243 opened a new pull request #2968:
URL: https://github.com/apache/hadoop/pull/2968


   The test `org.apache.hadoop.mapred.TestClientRedirect.testRedirect` is not 
idempotent and fail if run twice in the same JVM, because it pollutes some 
states shared among tests. It may be good to clean this state pollution so that 
some other tests do not fail in the future due to the shared state polluted by 
this test.
   
   ### Detail
   Running `TestClientRedirect.testRedirect` twice would result in the second 
run failing due to the following assertion error:
   ```
   INFO  [main] service.AbstractService (AbstractService.java:noteFailure(267)) 
- Service test failed in state STARTED
   org.apache.hadoop.yarn.exceptions.YarnRuntimeException: 
java.net.BindException: 
   
   Problem binding to [0.0.0.0:8054] java.net.BindException: Address already in 
use
   ```
   The root cause is that the RM server listening on port 8054 is started in 
the first run of this test, but hasn't been stopped when the test finishes. In 
the second run, when the test is trying to start the RMService, it fails 
because port 8054 is already in use, leading to the exception.
   
   The suggested fix is to stop the RM server in the added overridden method 
`RMService.serviceStop()`.
   
   With the proposed fix, the test does not pollute the shared state (and 
passes when run twice in the same JVM).
   
   JIRA link: 
[MAPREDUCE-7342](https://issues.apache.org/jira/browse/MAPREDUCE-7342)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to