This is an automated email from the ASF dual-hosted git repository. xtsong pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
commit 9f1d43bf7fde140214df1e9ef2759db567b2ed63 Author: Xintong Song <[email protected]> AuthorDate: Sun Feb 20 17:52:59 2022 +0800 [FLINK-25893][runtime] Do not report error if ResourceManagerServiceImpl#deregisterApplication is called when there's no leading RM. --- .../runtime/resourcemanager/ResourceManagerServiceImpl.java | 5 ++--- .../resourcemanager/ResourceManagerServiceImplTest.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/flink-runtime/src/main/java/org/apache/flink/runtime/resourcemanager/ResourceManagerServiceImpl.java b/flink-runtime/src/main/java/org/apache/flink/runtime/resourcemanager/ResourceManagerServiceImpl.java index 692993a..59f6df3 100644 --- a/flink-runtime/src/main/java/org/apache/flink/runtime/resourcemanager/ResourceManagerServiceImpl.java +++ b/flink-runtime/src/main/java/org/apache/flink/runtime/resourcemanager/ResourceManagerServiceImpl.java @@ -155,9 +155,8 @@ public class ResourceManagerServiceImpl implements ResourceManagerService, Leade } private static CompletableFuture<Void> deregisterWithoutLeaderRm() { - return FutureUtils.completedExceptionally( - new FlinkException( - "Cannot deregister application. Resource manager service is not available.")); + LOG.warn("Cannot deregister application. Resource manager service is not available."); + return FutureUtils.completedVoidFuture(); } @Override diff --git a/flink-runtime/src/test/java/org/apache/flink/runtime/resourcemanager/ResourceManagerServiceImplTest.java b/flink-runtime/src/test/java/org/apache/flink/runtime/resourcemanager/ResourceManagerServiceImplTest.java index e365faa..3d90b203 100644 --- a/flink-runtime/src/test/java/org/apache/flink/runtime/resourcemanager/ResourceManagerServiceImplTest.java +++ b/flink-runtime/src/test/java/org/apache/flink/runtime/resourcemanager/ResourceManagerServiceImplTest.java @@ -482,6 +482,16 @@ public class ResourceManagerServiceImplTest extends TestLogger { deregisterApplicationFuture.get(TIMEOUT.getSize(), TIMEOUT.getUnit()); } + @Test + public void deregisterApplication_noLeaderRm() throws Exception { + createAndStartResourceManager(); + final CompletableFuture<Void> deregisterApplicationFuture = + resourceManagerService.deregisterApplication(ApplicationStatus.CANCELED, null); + + // should not report error + deregisterApplicationFuture.get(TIMEOUT.getSize(), TIMEOUT.getUnit()); + } + private static void blockOnFuture(CompletableFuture<?> future) { try { future.get();
