Greg Harris created KAFKA-14649:
-----------------------------------
Summary: Failures instantiating Connect plugins crash worker on
startup
Key: KAFKA-14649
URL: https://issues.apache.org/jira/browse/KAFKA-14649
Project: Kafka
Issue Type: Bug
Components: KafkaConnect
Affects Versions: 3.3.0, 3.2.0, 3.0.0, 3.1.0, 3.4.0
Reporter: Greg Harris
Assignee: Greg Harris
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 worker will fail to start up entirely. 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.
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)