flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Elias Levy (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-12104) Flink Kafka fails with Incompatible KafkaProducer version / NoSuchFieldException sequenceNumbers
Date Wed, 03 Apr 2019 18:04:03 GMT

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

Elias Levy commented on FLINK-12104:
------------------------------------

The {{flink-connector-kafka-0.11}} depends on the Kafka 0.11.0.2 client, which does have that
field. The field was only removed in 1.0.0. Are you overriding the Kafka client dependency?
If so, that is your problem.


 If you want to use a newer Kafka client, use the universal Kafka connection ({{flink-connector-kafka_2.11}}),
which tracks the latest version of the Kafka client.

> Flink Kafka fails with Incompatible KafkaProducer version / NoSuchFieldException sequenceNumbers
> ------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-12104
>                 URL: https://issues.apache.org/jira/browse/FLINK-12104
>             Project: Flink
>          Issue Type: Bug
>          Components: Connectors / Kafka
>    Affects Versions: 1.7.2
>            Reporter: Tim
>            Priority: Major
>
> FlinkKafkaProducer (in flink-connector-kafka-0.11) tries to access a field named `sequenceNumbers`
from the KafkaProducer's TransactionManager.  You can find this line on the [master branch
here|[https://github.com/apache/flink/blob/d6be68670e661091d94a3c65a2704d52fc0e827c/flink-connectors/flink-connector-kafka-0.11/src/main/java/org/apache/flink/streaming/connectors/kafka/internal/FlinkKafkaProducer.java#L197].]
>  
> {code:java}
> Object transactionManager = getValue(kafkaProducer, "transactionManager");
> ...
> Object sequenceNumbers = getValue(transactionManager, "sequenceNumbers");
> {code}
>  
> However, the Kafka TransactionManager no longer has a "sequenceNumbers" field.  This
was changed back on 9/14/2017 (KAFKA-5494) in an effort to support multiple inflight requests
while still guaranteeing idempotence.  See [commit diff here|[https://github.com/apache/kafka/commit/5d2422258cb975a137a42a4e08f03573c49a387e#diff-f4ef1afd8792cd2a2e9069cd7ddea630].]
> Subsequently when Flink tries to "recoverAndCommit" (see FlinkKafkaProducer011) it fails
with a "NoSuchFieldException: sequenceNumbers", followed by a "Incompatible KafkaProducer
version".
> Given that the KafkaProducer used is so old (this change was made almost two years ago)
are there any plans of upgrading?   Or - are there some known compatibility issues that
prevent Flink/Kafka connector from doing so?
>  



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

Mime
View raw message