What createMessageStreams() returns should match what's in the input. Is it possible for getTopicMap() to return an empty map?
Thanks, Jun On Wed, Sep 4, 2013 at 1:43 PM, Ian Friedman <i...@flurry.com> wrote: > Hey gang, I have a strange intermittent issue with our 0.7.2 consumers > that is perpelxing me: > > It seems like, sometimes very infrequently, when restarting our Consumer > fleet, some consumers threads just fail to start. The consumer connector > itself starts fine, and seems to be involved in subsequent rebalances, but > based on the logging I'm seeing, it looks like our one call to > ConsumerConnector.createMessageStreams is returning an empty map. > > Is that something that should happen normally and should we be retrying in > our calling code? Our consumer code looks like this: > > Map<String, List<KafkaStream<Message>>> topicMessageStreams = > fConsumerConnector.createMessageStreams( getTopicMap() ); > > for( Map.Entry<String, List<KafkaStream<Message>>> entry : > topicMessageStreams.entrySet() ) > { > final String topicName = entry.getKey(); > log.info( "starting stream for topic: " + topicName ); > final KafkaStream<Message> stream = entry.getValue().get(0); > > …. > > Are we doing anything dumb here? In the case I described, we're never > getting the "starting stream for topic: " message in our log output, so my > only guess is that createMessageStreams is returning an empty map. > > Thanks in advance guys! > > -- > Ian Friedman > >