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

IdleExpiryManager should not passively close socket used by controller

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.1.0
    • None
    • network
    • None

    Description

      Currently, controller creates sockets for every living brokers without idle timeout. However, processor threads from other brokers still could close these sockets if no requests flow through them within `connections.max.idle.ms`.

      Lots of CLOSE_WAITs were left when those sockets were closed by remote peer since controller's RequestSendThread will not check if they are closed by peer.

      I think we need to figure out a way to record which channels should be maintained and have them excluded by IdleExpiryManager. A naive method is to augment KafkaChannel, making it have a field indicating whether this channel should be kept alive.

      Does it make any sense?

      Attachments

        Activity

          People

            Unassigned Unassigned
            huxi_2b huxihx
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: