-
Task
-
Resolution: Obsolete
-
Major
-
None
-
2.2.1.Final
-
None
-
False
-
-
False
Hello
I tried many times to upgrade debezium connect from 1.9 version to 2.2 version without success. I will try to describe as much as possible my configuration and the issues I faced after the upgrade and where I got stuck.
I have clustered Kafka on 2 Debian 10 servers configured on docker. I'm using confluentic kafka, zookeper and schema registry 7.2.1, debezium connect 1.9 and provectuslabs kafka-ui 0.5.
I've been following this Confluent Schema Registry guideline in order to make the upgrade:
https://debezium.io/documentation/reference/2.2/configuration/avro.html
In order to do so, I've created a simple Dockerfile that adds missing JAR files to necessary connector (debezium-connector-mysql) - I also tried at first to put JAR files in libs directory (I've seen the behaviour is the same as putting them in debezium connector where the plugin path is set).
Then I've modified docker-compose.yml file replacing debezium/connect:1.9 image with the custom one I've created.
After docker-compose up, all existing connectors are failed with following error:

docker logs don't help at all, says the same as in Kafka UI. When clicking restart failed tasks I get error 500
After trying many things, I've been comparing old and new version, JARs that are missing in the new 2.2 debezium connect version.
Here (https://issues.redhat.com/browse/DBZ-4952) says that guava is included in converter package confluent. I added also guava-32.0.1-jre to the connector plugin path to see what happens and see if helps and error changed, but still not helpful:

I've also seen one avro-1.10.1 JAR file, so I added avro-1.11.1 to connector plugin path and this time the error was finally a bit different:

And I got more extra output from the error checking docker connect logs:
ERROR || The 'topic.prefix' value is invalid: A value is required
ERROR || WorkerSourceTask{id=appointment-connector-1682683841361364947-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted [org.apache.kafka.connect.runtime.WorkerTask]
After this, I tried to re-create the connector changing connector's json config parameters following
https://debezium.io/documentation/reference/2.2/connectors/mysql.html
(I've changed "database.server.name", "database.history.kafka.bootstrap.servers" and "database.history.kafka.topic" with "topic.prefix", "schema.history.internal.kafka.bootstrap.servers" and "schema.history.internal.kafka.topic")
After resolving this, I got back to another NoClassDefFound error:

In docker connect logs I can see the connector adding tables, making snapshots, till all of a sudden throws an unknown exception:

When I try to "Restart failed tasks" I can see the connector running a few seconds before getting this ConnectUnion error.
At the moment this is the dead end where I'm stuck.
Is it something I'm missing?
Please let me know if any more intel is needed.
Thanks in advance