You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Chris Egerton (Jira)" <ji...@apache.org> on 2023/02/09 15:48:00 UTC

[jira] [Assigned] (KAFKA-9981) Running a dedicated mm2 cluster with more than one nodes,When the configuration is updated the task is not aware and will lose the update operation.

     [ https://issues.apache.org/jira/browse/KAFKA-9981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris Egerton reassigned KAFKA-9981:
------------------------------------

    Assignee: Chris Egerton

> Running a dedicated mm2 cluster with more than one nodes,When the configuration is updated the task is not aware and will lose the update operation.
> ----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-9981
>                 URL: https://issues.apache.org/jira/browse/KAFKA-9981
>             Project: Kafka
>          Issue Type: Bug
>          Components: mirrormaker
>    Affects Versions: 2.4.0, 2.5.0, 2.4.1
>            Reporter: victor
>            Assignee: Chris Egerton
>            Priority: Major
>
> DistributedHerder.reconfigureConnector induction config update as follows:
> {code:java}
> if (changed) {
>     List<Map<String, String>> rawTaskProps = reverseTransform(connName, configState, taskProps);
>     if (isLeader()) {
>         configBackingStore.putTaskConfigs(connName, rawTaskProps);
>         cb.onCompletion(null, null);
>     } else {
>         // We cannot forward the request on the same thread because this reconfiguration can happen as a result of connector
>         // addition or removal. If we blocked waiting for the response from leader, we may be kicked out of the worker group.
>         forwardRequestExecutor.submit(new Runnable() {
>             @Override
>             public void run() {
>                 try {
>                     String leaderUrl = leaderUrl();
>                     if (leaderUrl == null || leaderUrl.trim().isEmpty()) {
>                         cb.onCompletion(new ConnectException("Request to leader to " +
>                                 "reconfigure connector tasks failed " +
>                                 "because the URL of the leader's REST interface is empty!"), null);
>                         return;
>                     }
>                     String reconfigUrl = RestServer.urlJoin(leaderUrl, "/connectors/" + connName + "/tasks");
>                     log.trace("Forwarding task configurations for connector {} to leader", connName);
>                     RestClient.httpRequest(reconfigUrl, "POST", null, rawTaskProps, null, config, sessionKey, requestSignatureAlgorithm);
>                     cb.onCompletion(null, null);
>                 } catch (ConnectException e) {
>                     log.error("Request to leader to reconfigure connector tasks failed", e);
>                     cb.onCompletion(e, null);
>                 }
>             }
>         });
>     }
> }
> {code}
> KafkaConfigBackingStore task checks for configuration updates,such as topic whitelist update.If KafkaConfigBackingStore task is not running on leader node,an HTTP request will be send to notify the leader of the configuration update.However,dedicated mm2 cluster does not have the HTTP server turned on,so the request will fail to be sent,causing the update operation to be lost.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)