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

showuon pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
     new c708f7ba5f4 MINOR: remove spurious call to fatalFaultHandler (#13651)
c708f7ba5f4 is described below

commit c708f7ba5f4f449920cec57a5b69e84e92128b54
Author: Colin Patrick McCabe <[email protected]>
AuthorDate: Thu Apr 27 19:15:26 2023 -0700

    MINOR: remove spurious call to fatalFaultHandler (#13651)
    
    Remove a spurious call to fatalFaultHandler accidentally introduced by 
KAFKA-14805.  We should only
    invoke the fatal fault handller if we are unable to generate the activation 
records. If we are
    unable to write the activation records, a controller failover should be 
sufficient to remedy the
    situation.
    
    Co-authored-by: Luke Chen [email protected]
    
    Reviewers: Luke Chen <[email protected]>, David Arthur <[email protected]>
---
 .../org/apache/kafka/controller/QuorumController.java | 19 ++++++++++++-------
 .../apache/kafka/controller/QuorumControllerTest.java |  2 +-
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git 
a/metadata/src/main/java/org/apache/kafka/controller/QuorumController.java 
b/metadata/src/main/java/org/apache/kafka/controller/QuorumController.java
index 7e5499fb076..16393983543 100644
--- a/metadata/src/main/java/org/apache/kafka/controller/QuorumController.java
+++ b/metadata/src/main/java/org/apache/kafka/controller/QuorumController.java
@@ -1181,10 +1181,6 @@ public final class QuorumController implements 
Controller {
                 new CompleteActivationEvent(),
                 EnumSet.of(DOES_NOT_UPDATE_QUEUE_TIME, RUNS_IN_PREMIGRATION)
             );
-            activationEvent.future.exceptionally(t -> {
-                fatalFaultHandler.handleFault("exception while activating 
controller", t);
-                return null;
-            });
             queue.prepend(activationEvent);
         } catch (Throwable e) {
             fatalFaultHandler.handleFault("exception while claiming 
leadership", e);
@@ -1275,12 +1271,21 @@ public final class QuorumController implements 
Controller {
         }
         return records;
     }
+
     class CompleteActivationEvent implements ControllerWriteOperation<Void> {
         @Override
         public ControllerResult<Void> generateRecordsAndResult() {
-            List<ApiMessageAndVersion> records = 
generateActivationRecords(log, logReplayTracker.empty(),
-                zkMigrationEnabled, bootstrapMetadata, featureControl);
-            return ControllerResult.atomicOf(records, null);
+            try {
+                List<ApiMessageAndVersion> records = 
generateActivationRecords(log,
+                    logReplayTracker.empty(),
+                    zkMigrationEnabled,
+                    bootstrapMetadata,
+                    featureControl);
+                return ControllerResult.atomicOf(records, null);
+            } catch (Throwable t) {
+                throw fatalFaultHandler.handleFault("exception while 
completing controller " +
+                    "activation", t);
+            }
         }
 
         @Override
diff --git 
a/metadata/src/test/java/org/apache/kafka/controller/QuorumControllerTest.java 
b/metadata/src/test/java/org/apache/kafka/controller/QuorumControllerTest.java
index 4f3a39b118d..afb83ffb27a 100644
--- 
a/metadata/src/test/java/org/apache/kafka/controller/QuorumControllerTest.java
+++ 
b/metadata/src/test/java/org/apache/kafka/controller/QuorumControllerTest.java
@@ -1359,7 +1359,7 @@ public class QuorumControllerTest {
         assertEquals(
             "The bootstrap metadata.version 3.3-IV0 does not support ZK 
migrations. Cannot continue with ZK migrations enabled.",
             assertThrows(FaultHandlerException.class, () ->
-                checkBootstrapZkMigrationRecord(MetadataVersion.IBP_3_3_IV0, 
true)).getCause().getCause().getMessage()
+                checkBootstrapZkMigrationRecord(MetadataVersion.IBP_3_3_IV0, 
true)).getCause().getMessage()
         );
     }
 

Reply via email to