You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by lh...@apache.org on 2025/06/02 09:26:52 UTC

(pulsar) 07/11: [fix][broker] Ignore metadata changes when broker is not in the Started state (#24352)

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

lhotari pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit e3b64a2242eb881f58fbb8617ec708fdd8a5135a
Author: Zixuan Liu <no...@gmail.com>
AuthorDate: Wed May 28 16:07:24 2025 +0800

    [fix][broker] Ignore metadata changes when broker is not in the Started state (#24352)
    
    Signed-off-by: Zixuan Liu <no...@gmail.com>
    (cherry picked from commit 12c96f6c4f974e1307d9b5a2ce49ab83fa95bcde)
---
 .../org/apache/pulsar/broker/service/BrokerService.java    | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
index 1ae66804f86..7b115b155a5 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
@@ -2473,9 +2473,19 @@ public class BrokerService implements Closeable {
 
 
     private void handleMetadataChanges(Notification n) {
-        if (!pulsar.isRunning()) {
+        if (pulsar.getState() != PulsarService.State.Started) {
+            String brokerId;
+            try {
+                brokerId = pulsar.getBrokerId();
+            } catch (Exception ex) {
+                if (log.isDebugEnabled()) {
+                    log.debug("Failed to get brokerId", ex);
+                }
+                // If broker is not running, we cannot get brokerId.
+                brokerId = "unknown";
+            }
             // Ignore metadata changes when broker is not running
-            log.info("Ignoring metadata change since broker is not running (id={}, state={}) {}", pulsar.getBrokerId(),
+            log.info("Ignoring metadata change since broker is not running (id={}, state={}) {}", brokerId,
                     pulsar.getState(), n);
             return;
         }