I agree that we should prevent the creation of such a topic configuration. That would mean catching it at topic-creation time, as well as catching it on any topic-configuration changes that might make min.isr > replication factor.
Not sure how we would detect things if someone changed the broker-default configuration. That could be tricky. Btw, I was the person who filed the original JIRA and as Mickael guessed, it was done by mistake. -James > On Mar 31, 2020, at 9:30 AM, Ismael Juma <ism...@juma.me.uk> wrote: > > Hi Paolo, > > Thanks for the KIP. Why would one want to set min.isr to be higher than > replication factor even in that case? Mickael's suggestion seems better to > me. > > Ismael > > On Fri, Mar 13, 2020 at 10:28 AM Paolo Moriello <paolomoriell...@gmail.com> > wrote: > >> Hi Mickael, >> >> Thanks for your interest in this. The main motivation to NOT make topic >> creation fail when this mismatch happens is because at the moment it is >> possible to produce/consume on topics if acks is not set to all. I'm not >> sure we want to disable this behavior (as we would by failing at topic >> creation). That's why I decided to go for a softer approach, which at least >> gives some more clarity to the users and avoids other issues mentioned in >> the KIP. >> >> Let's see what others think! >> >> On Fri, 13 Mar 2020 at 17:16, Mickael Maison <mickael.mai...@gmail.com> >> wrote: >> >>> Hi Paolo, >>> >>> Thanks for looking at this issue. This can indeed be a source of >> confusion. >>> >>> I'm wondering if we should prevent the creation of topics with >>> min.insync.replicas > replication.factor? >>> You listed that as a rejected alternative because it requires more >>> changes. However, I can't think of any scenarios where a user would >>> want to create such a topic. I'm guessing it's probably always by >>> mistake. >>> >>> Let's see what other people think but I think it's worth checking what >>> needs to be done if we wanted to prevent topics with bogus configs >>> >>> On Fri, Mar 13, 2020 at 3:28 PM Paolo Moriello >>> <paolomoriell...@gmail.com> wrote: >>>> >>>> Hi, >>>> >>>> Following this Jira ticket ( >>> https://issues.apache.org/jira/browse/KAFKA-4680), >>>> I've created a proposal ( >>>> >>> >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-579%3A+new+exception+on+min.insync.replicas+%3E+replication.factor >>> ) >>>> to add a new exception/error to be used on min.insync.replicas > >>>> replication.factor. >>>> >>>> The proposal aims to introduce a new exception specific for the >>>> configuration mismatch above to be used when producers requires acks = >>> all. >>>> At the moment we are using NotEnoughReplicaException, which is a >>> retriable >>>> exception and is used to fail on insync replicas < min isr. Plan is to >>> have >>>> a new, non-retriable exception, to separate the two cases. >>>> >>>> I've also submitted a PR for the change mentioned above: >>>> https://github.com/apache/kafka/pull/8225 >>>> >>>> Please have a look and let me know what you think. >>>> >>>> Thanks, >>>> Paolo >>> >>