Description
It seems no more clients can connect to Kafka after `max.connections.per.ip` is reached, even if previous clients were already disconnected.
Using 0.8.3 (9c936b18), upon starting a fresh Kafka server that is configured with (max.connections.per.ip = 24), I noticed that I can cause the server to hit the error case of INFO Rejected connection from /0:0:0:0:0:0:0:1, address already has the configured maximum of 24 connections. very quickly, by simply looping through a bunch of simple clients against the server:
#! /bin/bash for i in {1..30}; do # either: nc -vz 127.0.0.1 9092; # or: ( telnet 127.0.0.1 9092; ) & done # if using telnet, kill all connected jobs now via: kill %{2..31}
The problem seems to be that the counter for such short-lived client connections aren't properly decrementing when using the `max.connections.per.ip` feature.
Turning on DEBUG logs, I cannot see the log lines "Closing connection from xxx" on this line from the first few still-under-threshold short-lived connections, but starts showing after I hit the limit per that config.