Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 11996200B49 for ; Tue, 5 Jul 2016 00:45:13 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 10123160A6D; Mon, 4 Jul 2016 22:45:13 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 59E20160A65 for ; Tue, 5 Jul 2016 00:45:12 +0200 (CEST) Received: (qmail 61733 invoked by uid 500); 4 Jul 2016 22:45:11 -0000 Mailing-List: contact dev-help@kafka.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@kafka.apache.org Delivered-To: mailing list dev@kafka.apache.org Received: (qmail 61715 invoked by uid 99); 4 Jul 2016 22:45:11 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Jul 2016 22:45:11 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 1926E2C02A4 for ; Mon, 4 Jul 2016 22:45:11 +0000 (UTC) Date: Mon, 4 Jul 2016 22:45:11 +0000 (UTC) From: "Ewen Cheslack-Postava (JIRA)" To: dev@kafka.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (KAFKA-3854) Subsequent regex subscription calls fail MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 04 Jul 2016 22:45:13 -0000 [ https://issues.apache.org/jira/browse/KAFKA-3854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ewen Cheslack-Postava updated KAFKA-3854: ----------------------------------------- Fix Version/s: 0.10.0.1 > Subsequent regex subscription calls fail > ---------------------------------------- > > Key: KAFKA-3854 > URL: https://issues.apache.org/jira/browse/KAFKA-3854 > Project: Kafka > Issue Type: Bug > Components: consumer > Reporter: Vahid Hashemian > Assignee: Vahid Hashemian > Fix For: 0.10.1.0, 0.10.0.1 > > > There are a couple of issues with regex subscription in the new consumer: > h6. Subsequent Subscriptions Fail > When consecutive calls are made to new consumer's [regex subscription|https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/KafkaConsumer.java#L850], like below: > {code} > consumer.subscribe(Pattern.compile("..."), listener); > consumer.poll(0); > consumer.subscribe(Pattern.compile("f.."), listener); > consumer.poll(0); > {code} > the second call fails with the following error: > {code} > Exception in thread "main" java.lang.IllegalStateException: Subscription to topics, partitions and pattern are mutually exclusive > at org.apache.kafka.clients.consumer.internals.SubscriptionState.subscribe(SubscriptionState.java:175) > at org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(KafkaConsumer.java:854) > ... > {code} > h6. Subsequent Subscriptions Fail to Trigger a Subscription Change and Rebalance > Even after the code is tweaked to get around the above issue, only the first call to regex subscription triggers an actual subscription and the subscription's rebalance listener. The reason is the regex {{subscription}} / {{poll}} does not directly call {{changeSubscription(...)}} in which {{needsPartitionAssignment}} is set and causes a rebalance. This method is called only during the first regex {{subscription}} / {{poll}} when coordinator is unknown and [a {{client.poll}} call|https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/internals/AbstractCoordinator.java#L179] is made which eventually leads to [a {{changeSubscription}} call|https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/consumer/internals/ConsumerCoordinator.java#L161]. The subsequent call does not reach this point because the coordinator is already known. > It seems due to the same reason, if a consumer is subscribed to a pattern, and later on a new topic is created that matches that pattern, the consumer does not become subscribed it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)