-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
All,
Over the past few weeks, I've seen a few threads about sessions
appearing to live forever. I now have a Tomcat instance that is
experiencing the same behavior.
This is a development server, where we expect no more than maybe 10
sessions to be active at any given time. I currently have 806 and the
number appears to be increasing but never decreasing. We have a
30-minute (default) session inactivity timeout.
I'm using Tomcat 7.0.47, Linux, Oracle JVM 1.7.0-45 64-bit server. The
server is still running, so I can inspect it at will.
I have the following threads running, pretty much all idle:
"Abandoned connection cleanup thread" daemon
"ajp-apr-8215-Acceptor-0" daemon
"ajp-apr-8215-AsyncTimeout" daemon
"ajp-apr-8215-Poller" daemon
"Attach Listener" daemon
"C2 CompilerThread0" daemon
"C2 CompilerThread1" daemon
"catalina-exec-1" daemon
"catalina-exec-3" daemon
"catalina-exec-4" daemon
"catalina-exec-5" daemon
"Finalizer" daemon
"GC Daemon" daemon
"GC task thread#0 (ParallelGC)"
"GC task thread#1 (ParallelGC)"
"http-apr-127.0.0.1-28215-Acceptor-0" daemon
"http-apr-127.0.0.1-28215-AsyncTimeout" daemon
"http-apr-127.0.0.1-28215-Poller" daemon
"http-apr-127.0.0.1-28215-Sendfile" daemon
"http-apr-127.0.0.1-38215-Acceptor-0" daemon
"http-apr-127.0.0.1-38215-AsyncTimeout" daemon
"http-apr-127.0.0.1-38215-Poller" daemon
"http-apr-127.0.0.1-38215-Sendfile" daemon
"http-nio-127.0.0.1-8217-Acceptor-0" daemon
"http-nio-127.0.0.1-8217-ClientPoller-0" daemon
"http-nio-127.0.0.1-8217-ClientPoller-1" daemon
"main"
"Memcached IO over {MemcachedConnection to localhost/127.0.0.1:11211}"
"MySQL Statement Cancellation Timer" daemon
"NioBlockingSelector.BlockPoller-1" daemon
"Reference Handler" daemon
"Service Thread" daemon
"Signal Dispatcher" daemon
"Thread-3" daemon
"VM Periodic Task Thread"
"VM Thread"
I don't see a Tomcat background thread in there, which makes me think
that maybe that thread died or was killed.
I have no weird configuration for <Context> or <Manager> or anything
like that.
I can see this in my log from 3 days ago:
java.lang.OutOfMemoryError: GC overhead limit exceeded
Dumping heap to java_pid813.hprof ...
Heap dump file created [242580431 bytes in 4.064 secs]
Exception in thread
"ContainerBackgroundProcessor[StandardEngine[Catalina]]"
java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "catalina-exec-2" java.lang.OutOfMemoryError: GC
overhead limit exceeded
It looks like the background thread can suffer an OutOfMemory
condition and ultimately terminate, though the rest of Tomcat can stay
up (and then ultimately suffer more OOMEs due to failure to expire
sessions).
Perhaps the background thread should catch and ignore OutOfMemory errors?
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQIcBAEBCAAGBQJS+R+TAAoJEBzwKT+lPKRY1S4P/j2dybFZOQqnbT7iXqZa0FaK
G9IuiZwII+M8MGLcLYgs04bGalcAew4qcaI8yljrlSHCIJYPVqQXljF3I44YxFj7
/eHL1CNZ1XqGzM21o2DMudc9R3WOLW1ZWxeU80EMZM/43gs/vf3V58xj4VAijTsn
Ya9HQVt1cLp7QnT7njMV2nY1Z5B9HVHps7Q/lmOgdP8Ks/EG3WT1ZL8U+tIvNUvv
hN69vtA/kIUjEOrww3sbClsG4UFZH8tagSqB1q8KMa5S+LM6NLKWVUYW8tTGLvQc
0gkKsRdNYgOvuLXiZHiWTqBF1X/Ql7g9xP3bv1+csWmMj5PxosnGBmSc6F5QkWjx
KQI0fb+nhCCLa+EZDCZjDsjXfFHJcTwudlrZF73QSd91ZgIh0rUXPsx89eB9LuVS
saXrmhwNJyoOyjK2E4OmtMWQ6VvMLVzGgI3U+sX5ja2dBiX9gH8kP1rU5BDsvULu
xS/y/F7pQ/gt3bMaBEwUVfEcnJTcYsuU5ykFAgEEVLg9FUJluhRUkS7K+taMjhe0
grzdCNF5BjwNKgXtKdzW00nurmbuU3nRwZSwZhIJS4aGALv6fRmVNbq23f8qf7B7
GHig2v+lIBgGPC+Kj9tUCS+wrF3/SppQp0qFrv3ghj5VAgjwGwPW+0VcecF8dVm+
9UrZnNpC4zcZ1rO0tVOM
=sqCE
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]