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

Chris Egerton updated KAFKA-14649:
----------------------------------
    Fix Version/s: 3.4.1

> Failures instantiating Connect plugins hides other plugins from REST API, or 
> crash worker
> -----------------------------------------------------------------------------------------
>
>                 Key: KAFKA-14649
>                 URL: https://issues.apache.org/jira/browse/KAFKA-14649
>             Project: Kafka
>          Issue Type: Bug
>          Components: KafkaConnect
>    Affects Versions: 3.1.0, 3.0.0, 3.2.0, 3.3.0, 3.4.0
>            Reporter: Greg Harris
>            Assignee: Greg Harris
>            Priority: Minor
>             Fix For: 3.5.0, 3.4.1
>
>
> Connect plugin path scanning evaluates the version() method of plugins to 
> determine which version of a plugin to load, and what version to advertise as 
> part of the REST API. This process involves reflectively constructing an 
> instance of the class and calling the version method, which can fail in the 
> following scenarios:
> 1. If a plugin throws an exception from a static initialization block
> 2. If a plugin does not have a default constructor (such as a non-static 
> inner class)
> 3. If a plugin has a default constructor is not public
> 4. If a plugin throws an exception from the default constructor
> 5. If a plugin's version method throws an exception
> If any of the above is true for any single connector or rest extension on the 
> classpath or plugin.path, the plugin path scanning will exit early, and 
> potentially hide other unrelated plugins. This is primarily an issue in 
> development and test environments, because they are easy-to-make code 
> mistakes that would generally not make it to a release. Exceptions from the 
> version method, however, can cause the worker to fail to start up as they are 
> uncaught.
> It is desirable for the worker to instead log these exceptions and continue. 
> This will prevent one mis-implemented plugin from affecting other plugins, 
> while still causing integration tests to fail against the plugin itself. We 
> can augment logging to make it clear how to correct these failures, where 
> before it was rather opaque and difficult to debug.



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

Reply via email to