huxihx created KAFKA-7765:
-----------------------------
Summary: IdleExpiryManager should not passively close socket used
by controller
Key: KAFKA-7765
URL: https://issues.apache.org/jira/browse/KAFKA-7765
Project: Kafka
Issue Type: Bug
Components: network
Affects Versions: 2.1.0
Reporter: huxihx
Currently, controller creates sockets for every living brokers without idle
timeout. However, other brokers' processor threads 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?
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)