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

John Roesler commented on KAFKA-9517:
-------------------------------------

Hi [~psnively], thanks for your kind words.

Actually, the 2.4.1 release is currently in progress. Fortunately, we caught 
these issues early enough to have them included as blockers for the release. 
The release plan is here: 
https://cwiki.apache.org/confluence/display/KAFKA/Release+Plan+2.4.1
Of course, it cannot progress until the blockers are resolved, which is the 
biggest wild-card in the timeline. As soon as the blockers are cleared, Bill 
(who volunteered to drive the release) will be able to give a better estimate 
about the timeline.

As you said, the biggest thing you can do to help is to check out the PRs and 
test them. I think you'll need both #8015 and #8061. As per Apache Kafka 
policies, the PRs are actually based on trunk, so you'll want to squash them 
and cherry-pick them onto 2.4 to get an accurate proxy for 2.4.1 . This is 
actually a huge help, since even extensive testing can have subtle but 
important gaps (which is how we wound up with these bugs to begin with).

The other bug thing you can do if you have time is review the PRs. You've 
already become familiar enough with the code to identify the root cause even 
before I saw it, and a fresh perspective is always helpful.

Thanks again,
-John

> KTable Joins Without Materialized Argument Yield Results That Further Joins 
> NPE On
> ----------------------------------------------------------------------------------
>
>                 Key: KAFKA-9517
>                 URL: https://issues.apache.org/jira/browse/KAFKA-9517
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>    Affects Versions: 2.4.0
>            Reporter: Paul Snively
>            Priority: Blocker
>             Fix For: 2.5.0, 2.4.1
>
>
> The `KTable` API implemented [[here||#L842-L844]] 
> [https://github.com/apache/kafka/blob/2.4.0/streams/src/main/java/org/apache/kafka/streams/kstream/internals/KTableImpl.java#L842-L844]
>  []|#L842-L844]] calls `doJoinOnForeignKey` with an argument of 
> `Materialized.with(null, null)`, as apparently do several other APIs. As the 
> comment spanning [these lines|#L1098-L1099]] makes clear, the result is a 
> `KTable` whose `valueSerde` (as a `KTableImpl`) is `null`. Therefore, 
> attempts to `join` etc. on the resulting `KTable` fail with a 
> `NullPointerException`.
> While there is an obvious workaround—explicitly construct the required 
> `Materialized` and use the APIs that take it as an argument—I have to admit I 
> find the existence of public APIs with this sort of bug, particularly when 
> the bug is literally documented as a comment in the source code, astonishing 
> to the point of incredulity. It calls the quality and trustworthiness of 
> Kafka Streams into serious question, and if a resolution is not forthcoming 
> within a week, we will be left with no other option but to consider technical 
> alternatives.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to