You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by April Easton <AE...@shawneecourt.org> on 2011/06/10 16:36:26 UTC

Tomcat shutdown issues

Good day,
     I've been working on closing all my threads in my applications that run on Tomcat.  I recently upgraded to 7.0.14 to get better messages concerning why Tomcat wasn't shutting down properly.  I have stopped all my servlets and threads, but I'm still having trouble.  Below is the thread dump of the most recent shutdown and my catalina log.  I don't see any of my threads in there, so what is keeping Tomcat alive?

2011-06-10 09:07:32
Full thread dump Java HotSpot(TM) 64-Bit Server VM (19.0-b09 mixed mode):

"DestroyJavaVM" prio=3D10 tid=3D0x000000005d1e9800 nid=3D0x5155 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Worker-JM" prio=3D10 tid=3D0x000000005d7a1800 nid=3D0x521f in Object.wait() [0x0000000042ce2000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000b69c2050> (a java.util.ArrayList)
        at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:58)
        - locked <0x00000000b69c2050> (a java.util.ArrayList)

"Bundle File Closer" daemon prio=3D10 tid=3D0x000000005e223800 nid=3D0x521d in Object.wait() [0x0000000042be1000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000b6a67768> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:485)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
        - locked <0x00000000b6a67768> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)

"Start Level Event Dispatcher" daemon prio=3D10 tid=3D0x000000005d5fc000 nid=3D0x521b in Object.wait() [0x0000000042ae0000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000b68c5d38> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:485)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
        - locked <0x00000000b68c5d38> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)

"Framework Event Dispatcher" daemon prio=3D10 tid=3D0x000000005d956800 nid=3D0x521a in Object.wait() [0x00000000429df000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000b68f7278> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at java.lang.Object.wait(Object.java:485)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
        - locked <0x00000000b68f7278> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
        at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)

"GC Daemon" daemon prio=3D10 tid=3D0x000000005d299000 nid=3D0x5160 in Object.wait() [0x0000000040dea000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000b48180b8> (a sun.misc.GC$LatencyLock)
        at sun.misc.GC$Daemon.run(GC.java:100)
        - locked <0x00000000b48180b8> (a sun.misc.GC$LatencyLock)

"Low Memory Detector" daemon prio=3D10 tid=3D0x000000005ce8b000 nid=3D0x515e runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread1" daemon prio=3D10 tid=3D0x000000005ce88800 nid=3D0x515d waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=3D10 tid=3D0x000000005ce85000 nid=3D0x515c waiting on condition [0x0000000000000000]
  java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=3D10 tid=3D0x000000005ce82800 nid=3D0x515b runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=3D10 tid=3D0x000000005ce5e000 nid=3D0x515a in Object.wait() [0x000000004136b000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000b4818800> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
        - locked <0x00000000b4818800> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=3D10 tid=3D0x000000005ce5c000 nid=3D0x5159 in Object.wait() [0x000000004126a000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000000b48180a8> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:485)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        - locked <0x00000000b48180a8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=3D10 tid=3D0x000000005ce58000 nid=3D0x5158 runnable

"GC task thread#0 (ParallelGC)" prio=3D10 tid=3D0x000000005ce11000 nid=3D0x5156 runnable

"GC task thread#1 (ParallelGC)" prio=3D10 tid=3D0x000000005ce13000 nid=3D0x5157 runnable

"VM Periodic Task Thread" prio=3D10 tid=3D0x000000005ce95800 nid=3D0x515f waiting on condition

JNI global references: 979

Heap
PSYoungGen      total 32576K, used 26388K [0x00000000e6d60000, 0x00000000e91c0000, 0x0000000100000000)
  eden space 30208K, 79% used [0x00000000e6d60000,0x00000000e84e0000,0x00000000e8ae0000)
  from space 2368K, 98% used [0x00000000e8bc0000,0x00000000e8e05080,0x00000000e8e10000)
  to   space 3520K, 0% used [0x00000000e8e50000,0x00000000e8e50000,0x00000000e91c0000)
PSOldGen        total 51584K, used 40926K [0x00000000b4800000, 0x00000000b7a60000, 0x00000000e6d60000)
  object space 51584K, 79% used [0x00000000b4800000,0x00000000b6ff79c0,0x00000000b7a60000)
PSPermGen       total 58304K, used 58283K [0x00000000af600000, 0x00000000b2ef0000, 0x00000000b4800000)
  object space 58304K, 99% used [0x00000000af600000,0x00000000b2eeafe0,0x00000000b2ef0000)

catalina.out
Jun 10, 2011 9:04:48 AM org.apache.catalina.core.StandardServer await
INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance.
Jun 10, 2011 9:04:48 AM org.apache.coyote.AbstractProtocolHandler pause
INFO: Pausing ProtocolHandler ["http-bio-8088"] Jun 10, 2011 9:04:49 AM org.apache.coyote.AbstractProtocolHandler pause
INFO: Pausing ProtocolHandler ["http-bio-8443"] Jun 10, 2011 9:04:50 AM org.apache.coyote.AbstractProtocolHandler pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"] Jun 10, 2011 9:04:51 AM org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina
[SimpleHTTPServer] Stop called
[INFO] Shut down connection listener
[INFO] Shut down HTTP processors
[INFO] HTTP protocol handler shut down
Jun 10, 2011 9:04:56 AM org.apache.catalina.loader.WebappClassLoader clearReferencesStopTimerThread
SEVERE: The web application [/axis2] appears to have started a TimerThread named [Timer-0] via the java.util.Timer API but has failed to stop it. To prevent a memory leak, the timer (and hence the associated thread) has been forcibly canceled.  (***I looked in the logs that run this and it does get cancelled.  Also, this is not in the thread dump listed above.****) 
Jun 10, 2011 9:04:56 AM org.apache.coyote.AbstractProtocolHandler stop
INFO: Stopping ProtocolHandler ["http-bio-8088"] Jun 10, 2011 9:04:56 AM org.apache.coyote.AbstractProtocolHandler stop
INFO: Stopping ProtocolHandler ["http-bio-8443"] Jun 10, 2011 9:04:56 AM org.apache.coyote.AbstractProtocolHandler stop
INFO: Stopping ProtocolHandler ["ajp-bio-8009"]


Thanks,
April

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


Re: Tomcat shutdown issues

Posted by Pid <pi...@pidster.com>.
On 10/06/2011 15:36, April Easton wrote:
> Good day,
>      I've been working on closing all my threads in my applications that run on Tomcat.  I recently upgraded to 7.0.14 to get better messages concerning why Tomcat wasn't shutting down properly.  I have stopped all my servlets and threads, but I'm still having trouble.  Below is the thread dump of the most recent shutdown and my catalina log.  I don't see any of my threads in there, so what is keeping Tomcat alive?

Are you running Tomcat inside Eclipse?


p


Re: Tomcat shutdown issues

Posted by Rainer Jung <ra...@kippdata.de>.
On 10.06.2011 16:55, Caldarale, Charles R wrote:
>> From: April Easton [mailto:AEaston@shawneecourt.org] 
>> Subject: Tomcat shutdown issues
> 
>> I don't see any of my threads in there
> 
> Look harder:
> 
>> "Worker-JM" prio=3D10 tid=3D0x000000005d7a1800 nid=3D0x521f in Object.wait()
>>         at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:58)
>> "Bundle File Closer" daemon prio=3D10 tid=3D0x000000005e223800 nid=3D0x521d in Object.wait()
>>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
>>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
>> "Start Level Event Dispatcher" daemon prio=3D10 tid=3D0x000000005d5fc000 nid=3D0x521b in Object.wait()
>>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
>>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
>> "Framework Event Dispatcher" daemon prio=3D10 tid=3D0x000000005d956800 nid=3D0x521a in Object.wait()   
>>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
>>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
> 
> Those aren't Tomcat's threads; ergo, they are yours.  You're running Eclipse, you're responsible for the chaos it creates.

... but AFAIK only the non-daemon threads are problematic. The JVM
shouldn't care about existing daemon threads when trying to shut down.
So the only one in the list to care about is "Worker-JM".

Regards,

Rainer

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


RE: Tomcat shutdown issues

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: April Easton [mailto:AEaston@shawneecourt.org] 
> Subject: Tomcat shutdown issues

> I don't see any of my threads in there

Look harder:

> "Worker-JM" prio=3D10 tid=3D0x000000005d7a1800 nid=3D0x521f in Object.wait()
>         at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:58)
> "Bundle File Closer" daemon prio=3D10 tid=3D0x000000005e223800 nid=3D0x521d in Object.wait()
>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
> "Start Level Event Dispatcher" daemon prio=3D10 tid=3D0x000000005d5fc000 nid=3D0x521b in Object.wait()
>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)
> "Framework Event Dispatcher" daemon prio=3D10 tid=3D0x000000005d956800 nid=3D0x521a in Object.wait()   
>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397)
>         at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333)

Those aren't Tomcat's threads; ergo, they are yours.  You're running Eclipse, you're responsible for the chaos it creates.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


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