[ https://issues.apache.org/jira/browse/KAFKA-8671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16891971#comment-16891971 ]
Guozhang Wang commented on KAFKA-8671: -------------------------------------- I looked at the diff and it looks promising to me. Could you file a PR following the contribution guidelines as well? https://cwiki.apache.org/confluence/display/KAFKA/Contributing+Code+Changes#ContributingCodeChanges-PullRequest Also cc [~vvcephei] for reviewing this change. > NullPointerException occurs if topic associated with GlobalKTable changes > ------------------------------------------------------------------------- > > Key: KAFKA-8671 > URL: https://issues.apache.org/jira/browse/KAFKA-8671 > Project: Kafka > Issue Type: Bug > Components: streams > Affects Versions: 2.0.0, 2.1.0, 2.2.0, 2.3.0 > Reporter: Alex Leung > Assignee: Alex Leung > Priority: Critical > > The following NullPointerException occurs when the global/.checkpoint file > contains a line with a topic previously associated with (but no longer > configured for) a GlobalKTable: > {code:java} > java.lang.NullPointerException > at > org.apache.kafka.streams.processor.internals.GlobalStateUpdateTask.update(GlobalStateUpdateTask.java:85) > at > org.apache.kafka.streams.processor.internals.GlobalStreamThread$StateConsumer.pollAndUpdate(GlobalStreamThread.java:241) > at > org.apache.kafka.streams.processor.internals.GlobalStreamThread.run(GlobalStreamThread.java:290){code} > > After line 84 > ([https://github.com/apache/kafka/blob/2.0/streams/src/main/java/org/apache/kafka/streams/processor/internals/GlobalStateUpdateTask.java#L84)] > `sourceNodeAndDeserializer` is null for the old, but still valid, topic. > This can be reproduced with the following sequence: > # create a GlobalKTable associated with topic, 'global-topic1' > # change the topic associated with the GlobalKTable to 'global-topic2' > ## at this point, the global/.checkpoint file will contain lines for both > topics > # produce messages to previous topic ('global-topic1') > # the consumer will attempt to consume from global-topic1, but no > deserializer associated with global-topic1 will be found and the NPE will > occur > It looks like the following recent commit has included checkpoint validations > that may prevent this issue: > https://github.com/apache/kafka/commit/53b4ce5c00d61be87962f603682873665155cec4#diff-cc98a6c20f2a8483e1849aea6921c34dR425 -- This message was sent by Atlassian JIRA (v7.6.14#76016)