megaease/easemesh

Too many half closed connections in our mesh pods

zhao-kun opened this issue · 3 comments

I leverage the nicolaka/netshoot to enter our pod network namespace, but there are too many half-closed connections in network namespace, it's abnormal and should be fixed.

tcp        0      0 127.0.0.1:8778          0.0.0.0:*               LISTEN
tcp      162      0 127.0.0.1:59614         127.0.0.1:8778          CLOSE_WAIT
tcp        0      0 127.0.0.1:8778          127.0.0.1:59856         FIN_WAIT2
tcp        0      0 127.0.0.1:8778          127.0.0.1:60146         ESTABLISHED
tcp      162      0 127.0.0.1:59678         127.0.0.1:8778          CLOSE_WAIT
tcp        0      0 127.0.0.1:8778          127.0.0.1:59946         FIN_WAIT2
tcp        0      0 127.0.0.1:8778          127.0.0.1:59502         FIN_WAIT2
tcp      161      0 127.0.0.1:60204         127.0.0.1:8778          ESTABLISHED
tcp        1      0 127.0.0.1:59502         127.0.0.1:8778          CLOSE_WAIT
tcp        0      0 127.0.0.1:8778          127.0.0.1:60004         FIN_WAIT2
tcp        0      0 127.0.0.1:8778          127.0.0.1:59678         FIN_WAIT2
tcp      161      0 127.0.0.1:60146         127.0.0.1:8778          ESTABLISHED
tcp        0      0 127.0.0.1:8778          127.0.0.1:60110         ESTABLISHED
tcp      162      0 127.0.0.1:59912         127.0.0.1:8778          CLOSE_WAIT
tcp        1      0 127.0.0.1:59544         127.0.0.1:8778          CLOSE_WAIT
tcp      162      0 127.0.0.1:59438         127.0.0.1:8778          CLOSE_WAIT
tcp      161      0 127.0.0.1:60110         127.0.0.1:8778          ESTABLISHED
tcp        6      0 127.0.0.1:59338         127.0.0.1:8778          CLOSE_WAIT
tcp        0      0 127.0.0.1:8778          127.0.0.1:59752         FIN_WAIT2
tcp        0      0 127.0.0.1:8778          127.0.0.1:59544         FIN_WAIT2
tcp        0      0 127.0.0.1:8778          127.0.0.1:59614         FIN_WAIT2
tcp        0      0 127.0.0.1:8778          127.0.0.1:60052         ESTABLISHED
tcp      162      0 127.0.0.1:59946         127.0.0.1:8778          CLOSE_WAIT
tcp        0      0 127.0.0.1:8778          127.0.0.1:59912         FIN_WAIT2
tcp        0      0 127.0.0.1:8778          127.0.0.1:59438         FIN_WAIT2
tcp        1      0 127.0.0.1:59752         127.0.0.1:8778          CLOSE_WAIT
tcp      162      0 127.0.0.1:59810         127.0.0.1:8778          CLOSE_WAIT
tcp        0      0 127.0.0.1:8778          127.0.0.1:59810         FIN_WAIT2
tcp      162      0 127.0.0.1:59654         127.0.0.1:8778          CLOSE_WAIT
tcp        0      0 127.0.0.1:8778          127.0.0.1:59654         FIN_WAIT2
tcp        1      0 127.0.0.1:59856         127.0.0.1:8778          CLOSE_WAIT
tcp      161      0 127.0.0.1:60052         127.0.0.1:8778          ESTABLISHED
tcp        1      0 127.0.0.1:60004         127.0.0.1:8778          CLOSE_WAIT
tcp        0      0 127.0.0.1:8778          127.0.0.1:60204         ESTABLISHED

It seems that the sidecar immaturely close connections

8778 is the port of JMX over HTTP heartbeat. Seems that I forget to call response.Body.Close() in Golang. Fix it already.