From d6dbd923fc637bbd5187e17c757f3586e8e2620a Mon Sep 17 00:00:00 2001 From: Vivek Ratnavel Subramanian Date: Tue, 25 May 2021 17:09:17 -0700 Subject: [PATCH] HDDS-5275. Datanode Report Publisher publishes one extra report after DN shutdown --- .../ozone/container/common/report/ReportPublisher.java | 4 ++-- .../container/common/report/TestReportPublisher.java | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/report/ReportPublisher.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/report/ReportPublisher.java index 5d181eca10d7..e6b410628693 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/report/ReportPublisher.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/report/ReportPublisher.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with this * work for additional information regarding copyright ownership. The ASF @@ -67,9 +67,9 @@ public ConfigurationSource getConf() { @Override public void run() { - publishReport(); if (!executor.isShutdown() && (context.getState() != DatanodeStates.SHUTDOWN)) { + publishReport(); executor.schedule(this, getReportFrequency(), TimeUnit.MILLISECONDS); } diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/report/TestReportPublisher.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/report/TestReportPublisher.java index aa1337f6198b..291ab6e0415f 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/report/TestReportPublisher.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/report/TestReportPublisher.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with this * work for additional information regarding copyright ownership. The ASF @@ -107,6 +107,9 @@ public void testScheduledReport() throws InterruptedException { Thread.sleep(100); Assert.assertEquals(2, ((DummyReportPublisher) publisher).getReportCount); executorService.shutdown(); + // After executor shutdown, no new reports should be published + Thread.sleep(100); + Assert.assertEquals(2, ((DummyReportPublisher) publisher).getReportCount); } @Test @@ -122,7 +125,9 @@ public void testPublishReport() throws InterruptedException { executorService.shutdown(); Assert.assertEquals(1, ((DummyReportPublisher) publisher).getReportCount); verify(dummyContext, times(1)).addReport(null); - + // After executor shutdown, no new reports should be published + Thread.sleep(100); + Assert.assertEquals(1, ((DummyReportPublisher) publisher).getReportCount); } @Test