You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Chris Pennello (JIRA)" <ji...@apache.org> on 2016/04/21 23:07:13 UTC

[jira] [Created] (KAFKA-3601) fail fast when newer client connecting to older server

Chris Pennello created KAFKA-3601:
-------------------------------------

             Summary: fail fast when newer client connecting to older server
                 Key: KAFKA-3601
                 URL: https://issues.apache.org/jira/browse/KAFKA-3601
             Project: Kafka
          Issue Type: Improvement
          Components: consumer
            Reporter: Chris Pennello
            Assignee: Neha Narkhede


I know that connecting with a newer client to an older server is forbidden, but I would like to suggest that the behavior be that it predictably fail noisily, explicitly, and with specific detail indicating why the failure occurred.

As-is, trying to connect to a v0.8.1.1 cluster with a v0.9.1 client yields a hang when trying to get a coordinator metadata update.

(This may be related to KAFKA-1894.  I certainly did note {{poll(Long.MAX_VALUE)}} and wept many tears.  At least we could include a TODO-commented constant in the code with a non-forever, timeout, right?)

{noformat}
   java.lang.Thread.State: RUNNABLE
	at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
	at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
	at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:93)
	at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
	- locked <1c8cadab> (a sun.nio.ch.Util$2)
	- locked <2324ec49> (a java.util.Collections$UnmodifiableSet)
	- locked <3f3f5e0b> (a sun.nio.ch.EPollSelectorImpl)
	at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
	at org.apache.kafka.common.network.Selector.select(Selector.java:425)
	at org.apache.kafka.common.network.Selector.poll(Selector.java:254)
	at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:256)
	at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.clientPoll(ConsumerNetworkClient.java:320)
	at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:213)
	at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:193)
	at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.awaitMetadataUpdate(ConsumerNetworkClient.java:134)
	at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorKnown(AbstractCoordinator.java:184)
	at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:886)
	at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:853)
	... my code that calls poll...
{noformat}



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