1

I'm trying to track down why a web application is accumulating file descriptors, in the form of connections to clients, even when the clients (browsers) have disconnected.

The server is running Ubuntu 14.04.

The connections in question typically look like this (lsof output):

atc     10763 vcap  724u  IPv6 309771865      0t0  TCP 10.32.108.171:8080->10.118.33.246:56379 (ESTABLISHED)
atc     10763 vcap  725u  IPv6 309777427      0t0  TCP 10.32.108.171:8080->10.118.33.246:56397 (ESTABLISHED)
atc     10763 vcap  726u  IPv6 309777428      0t0  TCP 10.32.108.171:8080->10.118.33.246:56396 (ESTABLISHED)
atc     10763 vcap  727u  IPv6 309772456      0t0  TCP 10.32.108.171:8080->10.118.33.246:56380 (ESTABLISHED)

Here are the points which I'm confused about:

  • There is no browser on the client system (10.118.33.246) which has a connection established to the web server (10.32.108.171), however the connections remain in the ESTABLISHED state. Seemingly forever or until the web server is restarted.
  • The server does not have an IPv6 address configured.
  • The server doesn't even have IPv6 enabled: net.ipv6.conf.default.disable_ipv6 = 1 yet lsof is showing the connections as such.
  • 'Legitimate' connections from a browser are established via IPv4 (at least according to lsof on Mac OS).
  • If I launch a browser and establish a connection, I can track the connection on the server and see it go away when I close the browser.
  • There is a direct route between client and server. AFAICT there is no nat/masquerading/proxying happening where an intermediate component might be holding a connection open for the client.

Unless I'm wrong on the last point, I do not understand what could be going on. Why do the connections remain ESTABLISHED even when the client has gone away?

Thanks for any insights.

Jens D
  • 121
  • 3

0 Answers0