HDFS-16033 Fix issue of the StatisticsDataReferenceCleaner cleanUp (#3042)
Contributed by kaifeiYi (yikf). Signed-off-by: Mingliang Liu <liuml07@apache.org> Reviewed-by: Steve Loughran <stevel@apache.org>
This commit is contained in:
parent
549987ed87
commit
20a4cb0c67
|
@ -3831,12 +3831,19 @@ public abstract class FileSystem extends Configured
|
||||||
* Background action to act on references being removed.
|
* Background action to act on references being removed.
|
||||||
*/
|
*/
|
||||||
private static class StatisticsDataReferenceCleaner implements Runnable {
|
private static class StatisticsDataReferenceCleaner implements Runnable {
|
||||||
|
/**
|
||||||
|
* Represents the timeout period expires for remove reference objects from
|
||||||
|
* the STATS_DATA_REF_QUEUE when the queue is empty.
|
||||||
|
*/
|
||||||
|
private static final int REF_QUEUE_POLL_TIMEOUT = 10000;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
while (!Thread.interrupted()) {
|
while (!Thread.interrupted()) {
|
||||||
try {
|
try {
|
||||||
StatisticsDataReference ref =
|
StatisticsDataReference ref =
|
||||||
(StatisticsDataReference)STATS_DATA_REF_QUEUE.remove();
|
(StatisticsDataReference)STATS_DATA_REF_QUEUE.
|
||||||
|
remove(REF_QUEUE_POLL_TIMEOUT);
|
||||||
ref.cleanUp();
|
ref.cleanUp();
|
||||||
} catch (InterruptedException ie) {
|
} catch (InterruptedException ie) {
|
||||||
LOGGER.warn("Cleaner thread interrupted, will stop", ie);
|
LOGGER.warn("Cleaner thread interrupted, will stop", ie);
|
||||||
|
|
Loading…
Reference in New Issue