Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
Tests waste a lot of time in DataNode.shutdown. Typical logs look like:
2009-05-21 17:13:20,177 INFO datanode.DataNode (DataNode.java:shutdown(637)) - Waiting for threadgroup to exit, active threads is 0 2009-05-21 17:13:20,177 INFO datanode.DataBlockScanner (DataBlockScanner.java:run(620)) - Exiting DataBlockScanner thread. 2009-05-21 17:13:21,117 INFO datanode.DataNode (DataNode.java:shutdown(637)) - Waiting for threadgroup to exit, active threads is 0
In this example (and very commonly) the DataBlockScanner thread exits within 5-10ms after the first wait. The DN then sleeps an entire second before succeeding in shutting down.
Using exponential backoff from a short value like 2ms up to a maximum of 1000ms would solve this.