Hello,

as I understand the netstat output the mentioned PID's are the client ports instead.

I'm just calling http://localhost:8080 via a web browser, e.g. Firefox. Following the history of my calls against Tomcat:

Proto  Lokale Adresse         Remoteadresse          Status           PID
After startup
TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING 2408 [java.exe] TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 2408 [java.exe] TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING 2408 [java.exe]

After first successfull accesses to Tomcat (http://localhost:8080)
TCP 127.0.0.1:1255 127.0.0.1:8080 CONNECTED 3568 [firefox.exe] TCP 127.0.0.1:1256 127.0.0.1:8080 CONNECTED 3568 [firefox.exe] TCP 127.0.0.1:1257 127.0.0.1:8080 CONNECTED 3568 [firefox.exe] TCP 127.0.0.1:8080 127.0.0.1:1256 CONNECTED 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1257 CONNECTED 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1255 CONNECTED 2408 [java.exe] What seems conspiciuous is that the home page from http://localhost:8080 is loaded but the images to the apache foundation and the powered by are missing and the browser is showing as still loading.


After some more accesses, Tomcat freezed
TCP 127.0.0.1:1256 127.0.0.1:8080 CONNECTED 3568 [firefox.exe] TCP 127.0.0.1:1257 127.0.0.1:8080 CONNECTED 3568 [firefox.exe] TCP 127.0.0.1:8080 127.0.0.1:1256 CONNECTED 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1257 CONNECTED 2408 [java.exe] TCP 127.0.0.1:1261 127.0.0.1:8080 FIN_WAIT_2 3568 [firefox.exe] TCP 127.0.0.1:1262 127.0.0.1:8080 FIN_WAIT_2 3568 [firefox.exe] TCP 127.0.0.1:1263 127.0.0.1:8080 FIN_WAIT_2 3568 [firefox.exe] TCP 127.0.0.1:1264 127.0.0.1:8080 FIN_WAIT_2 3568 [firefox.exe] TCP 127.0.0.1:8080 127.0.0.1:1263 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1261 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1264 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1262 CLOSE_WAIT 2408 [java.exe]
TCP    127.0.0.1:8080         127.0.0.1:1255         WAITING         0

... and again some accesses
TCP 127.0.0.1:1256 127.0.0.1:8080 CONNECTED 3568 [firefox.exe] TCP 127.0.0.1:1257 127.0.0.1:8080 CONNECTED 3568 [firefox.exe] TCP 127.0.0.1:8080 127.0.0.1:1257 CONNECTED 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1256 CONNECTED 2408 [java.exe] TCP 127.0.0.1:1265 127.0.0.1:8080 FIN_WAIT_2 3568 [firefox.exe] TCP 127.0.0.1:1266 127.0.0.1:8080 FIN_WAIT_2 3568 [firefox.exe] TCP 127.0.0.1:1267 127.0.0.1:8080 FIN_WAIT_2 3568 [firefox.exe] TCP 127.0.0.1:1268 127.0.0.1:8080 FIN_WAIT_2 3568 [firefox.exe] TCP 127.0.0.1:8080 127.0.0.1:1265 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1264 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1263 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1262 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1261 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1266 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1267 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1268 CLOSE_WAIT 2408 [java.exe]

After some waiting
TCP 127.0.0.1:1256 127.0.0.1:8080 CONNECTED 3568 [firefox.exe] TCP 127.0.0.1:1257 127.0.0.1:8080 CONNECTED 3568 [firefox.exe] TCP 127.0.0.1:8080 127.0.0.1:1257 CONNECTED 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1256 CONNECTED 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1265 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1267 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1264 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1263 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1262 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1261 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1268 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1266 CLOSE_WAIT 2408 [java.exe]

After closing tomcat
TCP 127.0.0.1:1256 127.0.0.1:8080 FIN_WAIT_2 3568 [System] TCP 127.0.0.1:1257 127.0.0.1:8080 FIN_WAIT_2 3568 [System] TCP 127.0.0.1:8080 127.0.0.1:1267 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1257 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1265 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1256 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1268 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1264 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1263 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1262 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1266 CLOSE_WAIT 2408 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1261 CLOSE_WAIT 2408 [java.exe]
Later after some time System is closing its sockets, too.


After the freeze of Tomcat the Firefox browser shows the "loading sign" for each request against http://localhost:8080.


Hope this helps identifying the problem.


Kind regards,

T. Gau


André Warnier schrieb am 05.08.2010 01:08:
T. Gau wrote:
 Hello,

the CLOSE_WAIT connections are persistent (waiting 10+min now). The FIN_WAIT counterparts from the browser disapear after some time.

As a reminder: The Tomcat installation is "untouched". No configuration and no deployed applications besides these allready packaged with Tomcat.



Ok. But from the netstat dislay below, it looks as if a number of processes *local to the server* and with PID's 2049,2050,1992,1991 etc.. /have/ connected to Tomcat on port 8080. What are these processes, and are they still alive when you take this netstat screenshot ?

Can you briefly remind us of what kind of request to Tomcat these clients are issuing, and what happens in them while they wait/don't wait for a response ?

(A long time ago, I got some "ps.exe" program - probably in a Windows/NT Toolkit - which is easier than the Task Manager to look this up and cut/paste. Apparently still available in some form : http://technet.microsoft.com/en-us/sysinternals/bb795532.aspx
)



Kind regards,

T. Gau


André Warnier schrieb am 04.08.2010 23:11:
Hi T.

T. Gau wrote:
 Hello,

I have executed 'netstat -anopb tcp' with the following result:
TCP 0.0.0.0:8009 0.0.0.0:0 LISTENING 3436 [java.exe] TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 3436 [java.exe] TCP 127.0.0.1:8005 0.0.0.0:0 LISTENING 3436 [java.exe]

I could not find another listening port for java.exe.

The above is perfectly normal and classical.  It shows
- a listening port 8080, for the HTTP Connector
- a listening port 8009, for the AJP Connector
- a listening port 8005, for the Tomcat shutdown connector



BUT the requests to the frozen Tomcat results into
TCP 127.0.0.1:8080 127.0.0.1:2049 CLOSE_WAIT 3436 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:2050 CLOSE_WAIT 3436 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1992 CLOSE_WAIT 3436 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1991 CLOSE_WAIT 3436 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:2051 CLOSE_WAIT 3436 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1990 CLOSE_WAIT 3436 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:1989 CLOSE_WAIT 3436 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:2043 CLOSE_WAIT 3436 [java.exe] TCP 127.0.0.1:8080 127.0.0.1:2042 CLOSE_WAIT 3436 [java.exe]
Any ideas what happens here?


That is more interesting. If the situation above is transitory (just lasts a few seconds), then it might be normal. If the situation above persists for a long tine, then it shows that Tomcat (or something within Tomcat) is not properly closing its end of client sockets, and that the objects containing these sockets are lingering on the Heap, waiting to be collected. I'm sure someone else on this list could suggest a scenario where a badly-behaved application could achieve this.
(or a very large keepAlive setting ?)


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to