Larkin Lowrey created KAFKA-3378: ------------------------------------ Summary: Client blocks forever if SocketChannel connects instantly Key: KAFKA-3378 URL: https://issues.apache.org/jira/browse/KAFKA-3378 Project: Kafka Issue Type: Bug Components: clients Affects Versions: 0.9.0.1 Reporter: Larkin Lowrey
Observed that some consumers were blocked in Fetcher.listOffset() when starting many dozens of consumer threads at the same time. Selector.connect(...) calls SocketChannel.connect() in non-blocking mode and assumes that false is always returned and that the channel will be in the Selector's readyKeys once the connection is ready for connect completion due to the OP_CONNECT interest op. When connect() returns true the channel is fully connected connected and will not be included in readyKeys since only OP_CONNECT is set. I implemented a fix which handles the case when connect(...) returns true and verified that I no longer see stuck consumers. A git pull request will be forthcoming. -- This message was sent by Atlassian JIRA (v6.3.4#6332)