[ https://issues.apache.org/jira/browse/KAFKA-4446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15696259#comment-15696259 ]
Mickael Maison commented on KAFKA-4446: --------------------------------------- I believe this is a DUP of https://issues.apache.org/jira/browse/KAFKA-3959 > If consumer offset topic created with less replicas than min.insync.replicas, > consuming is not possible > ------------------------------------------------------------------------------------------------------- > > Key: KAFKA-4446 > URL: https://issues.apache.org/jira/browse/KAFKA-4446 > Project: Kafka > Issue Type: Bug > Components: core > Affects Versions: 0.10.1.0 > Environment: Ubuntu 16.04 > Reporter: Oliver Deakin > > This is a bit of an edge case but it has a high impact. I have seen an issue > multiple times while creating a new cluster of Kafka brokers and consuming > components in an automated deployment. Full details of the chain of events > are given below. I expect this could also occur if the first consume to a > Kafka cluster happens while some nodes are in a failure state. > It appears that while the consumer offsets topic can be created with a > replication factor of only 1 or 2 (if only 1 Kafka broker is alive when it's > created, for example), the min.insync.replicas is still applied and if that's > higher than the replication factor it becomes impossible to consume any > messages. It seems that when a topic is created explicitly with a replication > factor less than min.insync.replicas, that rule should not be applied as it > makes the topic unusable. From my experience this seems to be the case for > topics I've created myself, but the consumer offsets topic appears to behave > differently. > Detailed scenario: > - Kafka is utilised as an event messaging pipeline around which a number of > components are deployed that produce and consume messages. > - Deployments of a new environment bring up all components, including a 3 > node Kafka cluster and some event-driven components at the same time. > - Our configuration sets min.insync.replicas=2. > - Kafka node 1 opens its listener port before the other two brokers come up > - one of the components subscribes to a topic and attempts to consume from a > pre-created topic for the first time, also before the other two Kafka brokers > come up > - Kafka node 1 creates the consumer offsets topic with replication factor 1, > as it is the only live broker. This is expected behaviour as per the > documentation for offsets.topic.replication.factor. > - Kafka node 1 fails with a repeating error message and never recovers when > attempting to send a consumer offset message to the topic as there is only 1 > member of the ISR but min.insync.replicas is 2. The repeating error message > is: > kafka2_1 | org.apache.kafka.common.errors.NotEnoughReplicasException: Number > of insync replicas for partition [__consumer_offsets,31] is [1], below > required minimum [2] > - No consumers can consume from this cluster any more. > (FYI 0.10.1.0 is still listed as unreleased in JIRA, but the project front > page says it's the latest release) -- This message was sent by Atlassian JIRA (v6.3.4#6332)