You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Bartłomiej Tartanus (JIRA)" <ji...@apache.org> on 2018/02/03 22:57:00 UTC

[jira] [Commented] (KAFKA-5996) JsonConverter generates "Mismatching schema" DataException

    [ https://issues.apache.org/jira/browse/KAFKA-5996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16351567#comment-16351567 ] 

Bartłomiej Tartanus commented on KAFKA-5996:
--------------------------------------------

I think this issue might be related to mine. I am also getting this error despite the fact that schemas are equal. Looks like this is bug in this line:

[https://github.com/apache/kafka/blob/4c48942f9d9e1428e21f934746cb7ce22b3df746/connect/json/src/main/java/org/apache/kafka/connect/json/JsonConverter.java#L676]

schema and struct schema are compared using != and not equals method which causes this exception to be thrown incorrectly when schemas are indeed equal. 

> JsonConverter generates "Mismatching schema" DataException
> ----------------------------------------------------------
>
>                 Key: KAFKA-5996
>                 URL: https://issues.apache.org/jira/browse/KAFKA-5996
>             Project: Kafka
>          Issue Type: Bug
>          Components: KafkaConnect
>    Affects Versions: 0.10.0.0, 0.10.0.1, 0.10.1.0, 0.10.1.1, 0.10.2.0, 0.10.2.1, 0.11.0.0
>            Reporter: Yuqi Li
>            Priority: Major
>
> Run connect-standalone.sh with original connect-standalone.properties and custom jdbc source connect configuration.
> part of the jdbc source connect configuration:
> connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
> query=Select * from ......
> poll.interval.ms=45000
> transforms=MakeMap, InsertSourceId, InsertSourceEvent
> transforms.MakeMap.type=org.apache.kafka.connect.transforms.HoistField$Value
> transforms.MakeMap.field=emailRequest
> transforms.InsertSourceId.type=org.apache.kafka.connect.transforms.InsertField$Value
> transforms.InsertSourceId.static.field=id
> transforms.InsertSourceId.static.value=1
> transforms.InsertSourceEvent.type=org.apache.kafka.connect.transforms.InsertField$Value
> transforms.InsertSourceEvent.static.field=event
> transforms.InsertSourceEvent.static.value=REMINDER_EMAIL
> When the source connect starts, the first iteration(executing the query) runs ok, but 45 seconds later, it throws following exception:
> org.apache.kafka.connect.errors.DataException: Mismatching schema.
>         at org.apache.kafka.connect.json.JsonConverter.convertToJson(JsonConverter.java:647)
>         at org.apache.kafka.connect.json.JsonConverter.convertToJson(JsonConverter.java:650)
>         at org.apache.kafka.connect.json.JsonConverter.convertToJsonWithEnvelope(JsonConverter.java:537)
>         at org.apache.kafka.connect.json.JsonConverter.fromConnectData(JsonConverter.java:290)
>         at org.apache.kafka.connect.runtime.WorkerSourceTask.sendRecords(WorkerSourceTask.java:198)
>         at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:168)
>         at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:146)
>         at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:190)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
>         at java.util.concurrent.FutureTask.run(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Unknown Source)
> [2017-09-29 13:59:18,361] ERROR Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:149)
> The SoureTask is being killed due to the exception, and the source connector is dead.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)