You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/07/21 11:22:28 UTC

[pulsar] branch master updated: [fix][broker] Fix the managed ledger factory shutdown stuck due to scheduled executor shutdown first (#16668)

This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 9c93ab45af8 [fix][broker] Fix the managed ledger factory shutdown stuck due to scheduled executor shutdown first (#16668)
9c93ab45af8 is described below

commit 9c93ab45af80dbeb116bfe9b63ff579ac4e22ce6
Author: Penghui Li <pe...@apache.org>
AuthorDate: Thu Jul 21 19:22:21 2022 +0800

    [fix][broker] Fix the managed ledger factory shutdown stuck due to scheduled executor shutdown first (#16668)
---
 .../apache/bookkeeper/mledger/impl/ManagedLedgerFactoryImpl.java  | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerFactoryImpl.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerFactoryImpl.java
index 1a12f9da496..8e3271a0393 100644
--- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerFactoryImpl.java
+++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerFactoryImpl.java
@@ -570,9 +570,6 @@ public class ManagedLedgerFactoryImpl implements ManagedLedgerFactory {
             } else {
                 bookkeeperFuture.complete(null);
             }
-            //wait for tasks in scheduledExecutor executed.
-            scheduledExecutor.shutdown();
-
             if (!ledgers.isEmpty()) {
                 log.info("Force closing {} ledgers.", ledgers.size());
                 //make sure all callbacks is called.
@@ -596,7 +593,10 @@ public class ManagedLedgerFactoryImpl implements ManagedLedgerFactory {
             }
         }));
         entryCacheManager.clear();
-        return FutureUtil.waitForAll(futures);
+        return FutureUtil.waitForAll(futures).thenAccept(__ -> {
+            //wait for tasks in scheduledExecutor executed.
+            scheduledExecutor.shutdown();
+        });
     }
 
     @Override