Uploaded image for project: 'Kafka'
  1. Kafka
  2. KAFKA-2614

No more clients can connect after `TooManyConnectionsException` threshold (max.connections.per.ip) is reached

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 0.8.2.1
    • 0.9.0.0
    • core
    • None
    • Debian Jessie

    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.

      Attachments

        Activity

          People

            ijuma Ismael Juma
            stephenchu810 Stephen Chu
            Jun Rao Jun Rao
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: