Snehashis Pal created KAFKA-18119:
-------------------------------------
Summary: Service loading loads incorrect plugin version.
Key: KAFKA-18119
URL: https://issues.apache.org/jira/browse/KAFKA-18119
Project: Kafka
Issue Type: Bug
Components: connect
Affects Versions: 3.8.1, 3.9.0, 3.7.1, 3.8.0, 3.6.2, 3.6.1, 3.7.0, 3.6.0
Reporter: Snehashis Pal
Kafka connect seems to be loading incorrect version of connect plugins (such as
connectors) if run in SERVICE_LOAD mode. If the worker is started with only
service loading enabled, it does not seem to be loading the latest version of a
plugin available in its plugins path. Rather it always seems to be defaulting
to the plugin version provided in the classpath.
I observed this when I placed an updated json-converter in the plugins path and
a connector instantiated, still defaulted to using the one provided in the
connect (Kafka) distribution. It does not happen when the older
reflections-based plugin scanner is used. This can be reproduced by following
the same process, noted down below
* Set {*}plugin.discovery{*}=SERVICE_LOAD
* Install a newer version of json-converter
({*}org.apache.kafka.connect.json.JsonConverter{*}) than the one provided in
the distribution. Usually, the bundled version is the same as the current Kafka
distribution.
* Start a connector with either *key.converter* or *value.converter* set to
the json converter. Without this in the config the latest version is loaded.
It might be hard to judge which version of the converter is loaded. For testing
it might be good to build a new json converter with some log lines depicting
the version in use. Another way would be run connect in debug mode and add some
breakpoints in the startTask method in Worker where the converters are
initialised.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)