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()
);
}