You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Bill Bejeck (JIRA)" <ji...@apache.org> on 2016/10/07 12:34:20 UTC

[jira] [Updated] (KAFKA-4269) Multiple KStream instances with at least one Regex source causes NPE when using multiple consumers

     [ https://issues.apache.org/jira/browse/KAFKA-4269?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bill Bejeck updated KAFKA-4269:
-------------------------------
    Description: 
I discovered this issue while doing testing for for KAFKA-4114. 

KAFKA-4131 fixed the issue of a _single_ KStream with a regex source on partitioned topics across multiple consumers.

//KAFKA-4131 fixed this case assuming an "foo*" topics are partitioned
KStream kstream = builder.source(Pattern.compile("foo.*"));
KafkaStream stream = new KafkaStreams(builder, props);
stream.start();  

This is a new issue where there are _multiple_
KStream instances (and one has a regex source) within a single KafkaStreams object. When running the second or "following"
consumer there are NPE errors generated in the RecordQueue.addRawRecords method when attempting to consume records. 

For example:
KStream kstream = builder.source(Pattern.compile("foo.*"));
KStream kstream2 = builder.source(.....): //can be regex or named topic sources
KafkaStream stream = new KafkaStreams(builder, props);
stream.start();

By adding an additional KStream instance like above (whether Regex or Named topic) causes a NPE when run as "follower"
From my initial debugging I can see the TopicPartition assignments being set on the "follower" KafkaStreams instance, but need to track down why and where all assignments aren't being set.

  was:
I discovered this issue while doing testing for for KAFKA-4114. 

KAFKA-4131 fixed the issue of a _single_ KStream with a regex source on partitioned topics across multiple consumers.

//KAFKA-4131 fixed this case assuming an "foo*" topics are partitioned
KStream kstream = builder.source(Pattern.compile("foo.*"));
KafkaStream stream = new KafkaStreams(builder, props);
stream.start();  

This is a new issue where there are _multiple_
KStream instances (and one has a regex source) within a single KafkaStreams object. When running the second or "following"
consumer there are NPE errors generated in the RecordQueue.addRawRecords method when attempting to consume records. 

For example:
KStream kstream = builder.source(Pattern.compile("foo.*"));
KStream kstream2 = builder.source(.....): //can be regex or named topic sources
KafkaStream stream = new KafkaStreams(builder, props);
stream.start();


By adding an additional KStream instance like above (whether Regex or Named topic) causes a NPE when run as "follower"
From my initial debugging I can see the TopicPartition assignments being set on the "follower" KafkaStreams instance, but need to track down
why and where all assignments aren't being set.


> Multiple KStream instances with at least one Regex source causes NPE when using multiple consumers
> --------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-4269
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4269
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>    Affects Versions: 0.10.1.0
>            Reporter: Bill Bejeck
>            Assignee: Bill Bejeck
>
> I discovered this issue while doing testing for for KAFKA-4114. 
> KAFKA-4131 fixed the issue of a _single_ KStream with a regex source on partitioned topics across multiple consumers.
> //KAFKA-4131 fixed this case assuming an "foo*" topics are partitioned
> KStream kstream = builder.source(Pattern.compile("foo.*"));
> KafkaStream stream = new KafkaStreams(builder, props);
> stream.start();  
> This is a new issue where there are _multiple_
> KStream instances (and one has a regex source) within a single KafkaStreams object. When running the second or "following"
> consumer there are NPE errors generated in the RecordQueue.addRawRecords method when attempting to consume records. 
> For example:
> KStream kstream = builder.source(Pattern.compile("foo.*"));
> KStream kstream2 = builder.source(.....): //can be regex or named topic sources
> KafkaStream stream = new KafkaStreams(builder, props);
> stream.start();
> By adding an additional KStream instance like above (whether Regex or Named topic) causes a NPE when run as "follower"
> From my initial debugging I can see the TopicPartition assignments being set on the "follower" KafkaStreams instance, but need to track down why and where all assignments aren't being set.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)