You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "victor (Jira)" <ji...@apache.org> on 2020/05/18 08:13:00 UTC

[jira] [Issue Comment Deleted] (KAFKA-9845) plugin.path property does not work with config provider

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

victor updated KAFKA-9845:
--------------------------
    Comment: was deleted

(was: [~ alexlumpov]人名提及某人......)

> plugin.path property does not work with config provider
> -------------------------------------------------------
>
>                 Key: KAFKA-9845
>                 URL: https://issues.apache.org/jira/browse/KAFKA-9845
>             Project: Kafka
>          Issue Type: Bug
>          Components: KafkaConnect
>    Affects Versions: 2.3.0, 2.4.0, 2.3.1, 2.5.0, 2.4.1
>            Reporter: Chris Egerton
>            Assignee: Chris Egerton
>            Priority: Minor
>
> The config provider mechanism doesn't work if used for the {{plugin.path}} property of a standalone or distributed Connect worker. This is because the {{Plugins}} instance which performs plugin path scanning is created using the raw worker config, pre-transformation (see [ConnectStandalone|https://github.com/apache/kafka/blob/371ad143a6bb973927c89c0788d048a17ebac91a/connect/runtime/src/main/java/org/apache/kafka/connect/cli/ConnectStandalone.java#L79] and [ConnectDistributed|https://github.com/apache/kafka/blob/371ad143a6bb973927c89c0788d048a17ebac91a/connect/runtime/src/main/java/org/apache/kafka/connect/cli/ConnectDistributed.java#L91]).
> Unfortunately, because config providers are loaded as plugins, there's a circular dependency issue here. The {{Plugins}} instance needs to be created _before_ the {{DistributedConfig}}/{{StandaloneConfig}} is created in order for the config providers to be loaded correctly, and the config providers need to be loaded in order to perform their logic on any properties (including the {{plugin.path}} property).
> There is no clear fix for this issue in the code base, and the only known workaround is to refrain from using config providers for the {{plugin.path}} property.
> A couple improvements could potentially be made to improve the UX when this issue arises:
>  #  Alter the config logging performed by the {{DistributedConfig}} and {{StandaloneConfig}} classes to _always_ log the raw value for the {{plugin.path}} property. Right now, the transformed value is logged even though it isn't used, which is likely to cause confusion.
>  # Issue a {{WARN}}- or even {{ERROR}}-level log message when it's detected that the user is attempting to use config providers for the {{plugin.path}} property, which states that config providers cannot be used for that specific property, instructs them to change the value for the property accordingly, and/or informs them of the actual value that the framework will use for that property when performing plugin path scanning.
> We should _not_ throw an error on startup if this condition is detected, as this could cause previously-functioning, benignly-misconfigured Connect workers to fail to start after an upgrade.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)