You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Beam JIRA Bot (Jira)" <ji...@apache.org> on 2022/04/19 17:28:00 UTC

[jira] [Commented] (BEAM-13924) Coder information lost in Kafka Read

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

Beam JIRA Bot commented on BEAM-13924:
--------------------------------------

This issue is P2 but has been unassigned without any comment for 60 days so it has been labeled "stale-P2". If this issue is still affecting you, we care! Please comment and remove the label. Otherwise, in 14 days the issue will be moved to P3.

Please see https://beam.apache.org/contribute/jira-priorities/ for a detailed explanation of what these priorities mean.


> Coder information lost in Kafka Read
> ------------------------------------
>
>                 Key: BEAM-13924
>                 URL: https://issues.apache.org/jira/browse/BEAM-13924
>             Project: Beam
>          Issue Type: Bug
>          Components: io-java-kafka
>    Affects Versions: 2.36.0
>            Reporter: Jonas Grabber
>            Priority: P2
>              Labels: bug, kafka, stale-P2
>
> When upgrading from 2.29.0 to 2.36.0 our Kafka Read transform broke.
> While debugging, I saw that information of the key and value coders is lost after [this statement in KafkaIO|https://github.com/apache/beam/blob/v2.36.0/sdks/java/io/kafka/src/main/java/org/apache/beam/sdk/io/kafka/KafkaIO.java#L1459]:
> {code:java}
> return output.apply(readTransform).setCoder(KafkaRecordCoder.of(keyCoder, valueCoder));
> {code}
> The issue seems to be that {{output.apply}} already checks for the presence of key and value coders and ends up trying to infer them with the help of [LocalDeserializerProvider|https://github.com/apache/beam/blob/v2.36.0/sdks/java/io/kafka/src/main/java/org/apache/beam/sdk/io/kafka/LocalDeserializerProvider.java], so the process never arrives at {{{}setCoder{}}}.
> In our case this inference fails since we implement the {{Deserializer}} interface in a super class of the instance passed as the deserializer (I assume it would also fail afterwards since we don't register our coders with the registry).
> This was not yet broken on 2.29.0, so all versions after that could be affected.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)