-
Bug
-
Resolution: Done
-
Major
-
0.10.0.Beta3
-
None
The version 0.10.0.Beta3 introduced the heartbeat functionality to the MongoDB Connector, via DBZ-1198
The SMT for extracting the new document doesn't support the messages which might be routed from the heartbeat, thus breaking it:
kafka-connect_1 | 2019-08-14 12:50:42,083 ERROR || WorkerSourceTask{id=usabilla-cdc-accounts-0} Task threw an uncaught and unrecoverable exception [org.apache.kafka.connect.runtime.WorkerTask] kafka-connect_1 | org.apache.kafka.connect.errors.ConnectException: Tolerance exceeded in error handler kafka-connect_1 | at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:178) kafka-connect_1 | at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execute(RetryWithToleranceOperator.java:104) kafka-connect_1 | at org.apache.kafka.connect.runtime.TransformationChain.apply(TransformationChain.java:50) kafka-connect_1 | at org.apache.kafka.connect.runtime.WorkerSourceTask.sendRecords(WorkerSourceTask.java:293) kafka-connect_1 | at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:229) kafka-connect_1 | at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:175) kafka-connect_1 | at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:219) kafka-connect_1 | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) kafka-connect_1 | at java.util.concurrent.FutureTask.run(FutureTask.java:266) kafka-connect_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) kafka-connect_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) kafka-connect_1 | at java.lang.Thread.run(Thread.java:748) kafka-connect_1 | Caused by: java.lang.NullPointerException kafka-connect_1 | at org.apache.kafka.connect.transforms.ExtractField.apply(ExtractField.java:61) kafka-connect_1 | at io.debezium.connector.mongodb.transforms.ExtractNewDocumentState.apply(ExtractNewDocumentState.java:142) kafka-connect_1 | at org.apache.kafka.connect.runtime.TransformationChain.lambda$apply$0(TransformationChain.java:50) kafka-connect_1 | at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndRetry(RetryWithToleranceOperator.java:128) kafka-connect_1 | at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:162) kafka-connect_1 | ... 11 more kafka-connect_1 | 2019-08-14 12:50:42,091 ERROR || WorkerSourceTask{id=usabilla-cdc-accounts-0} Task is being killed and will not recover until manually restarted [org.apache.kafka.connect.runtime.WorkerTask]
I propose to use a similar approach to the other SMTs, like DBZ-1388