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)

Reply via email to