Tomcat does not shut down properly
Description
Environment
Activity

General ChenJune 26, 2007 at 7:54 PM
I got the issue also: com.liferay.portal.struts.ActionException: java.lang.IllegalThreadStateException.
My env is Ubuntu 7.04, 2.6.20-16-generic #2 SMP Thu Jun 7 20:19:32 UTC 2007 i686 GNU/Linux,
java version "1.6.0_01"
Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)
I add following line into portal-ext.properties, the issue fixed.
shutdown.programmatically.exit=false

Vladislav PerninJune 9, 2007 at 5:25 AM
Hi all,
I have just downloaded the 4.3RC version and I saw the same stack when shutting down Liferay. What is the status of this issue ?

Vladislav PerninApril 22, 2007 at 9:22 AM
I just try the 4.2.2 jdk5 tomcat bundle, when shuting down, it says :
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.java:559)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
16:18:45,711 ERROR [MainServlet:937] com.liferay.portal.struts.ActionException: java.lang.IllegalThreadStateException
at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.java:155)
at com.liferay.portal.events.EventsProcessor.process(EventsProcessor.java:76)
at com.liferay.portal.servlet.MainServlet.destroy(MainServlet.java:929)
at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1331)
at org.apache.catalina.core.StandardWrapper.stop(StandardWrapper.java:1666)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:892)
at org.apache.catalina.core.StandardContext.removeChild(StandardContext.java:3095)
at org.apache.catalina.startup.ContextConfig.stop(ContextConfig.java:1082)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:276)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4355)
at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:892)
at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1164)
at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1135)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:312)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1054)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1066)
at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:447)
at org.apache.catalina.core.StandardService.stop(StandardService.java:512)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:743)
at org.apache.catalina.startup.Catalina.stop(Catalina.java:601)
at org.apache.catalina.startup.Catalina.start(Catalina.java:576)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: java.lang.IllegalThreadStateException
at java.lang.ThreadGroup.destroy(ThreadGroup.java:750)
at com.liferay.portal.events.GlobalShutdownAction.run(GlobalShutdownAction.java:164)
at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.java:152)
... 28 more
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.java:559)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:45 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable run
SEVERE: Unexpected exception
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:656)
at java.lang.Thread.run(Thread.java:595)
22 avr. 2007 16:18:47 org.apache.coyote.http11.Http11BaseProtocol destroy
INFO: Arrêt de Coyote HTTP/1.1 sur http-8080
22 avr. 2007 16:18:47 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Failed shutdown of Apache Portable Runtime
Failed to shut down: java.lang.NullPointerException
Has the problem been resolved with a ThreadGroup destroy ? I hope not and the diagnostic has gone a little bit futher than ours.

Pan PanMarch 7, 2007 at 7:34 AM
We have the same problem. We usebundle version 4.2.1 with tomcat in many environments: windows xp, Red Hat, Gentoo.
I tried to build liferay myself. I check out 4.2.x branch of you SVN and build it (ant all) into tomcat from your bundle. Still the same error: Fail to shutdown.

Brian ChanFebruary 27, 2007 at 5:36 PM
Checked in. Thanks James.
I have to sudo kill -9 the process. A JPDA debug shows 4 remaining thread :
Thread [TP-Processor4] (Running)
Thread [http-8080-Processor24] (Running)
Thread [Timer-0] (Running)
Thread [com.liferay.portal.kernel.deploy.AutoDeployScanner] (Running)
Thread [HSQLDB Timer @1f71773] (Running) (this one is not present when using MySQL of course)
Thread [DestroyJavaVM] (Running)
The console says :
Using CATALINA_BASE: /home/vpernin/java/liferay/421/temp
Using CATALINA_HOME: /home/vpernin/java/liferay/421/temp
Using CATALINA_TMPDIR: /home/vpernin/java/liferay/421/temp/temp
Using JRE_HOME: /usr/java/jdk1.5.0_10
18 janv. 2007 15:37:46 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
18 janv. 2007 15:37:46 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/39 config=null
18 janv. 2007 15:37:46 org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
18 janv. 2007 15:37:46 org.apache.catalina.startup.Catalina start
INFO: Server startup in 51836 ms
18 janv. 2007 15:38:17 org.apache.coyote.http11.Http11BaseProtocol pause
INFO: Suspension de Coyote HTTP/1.1 sur http-8080
18 janv. 2007 15:38:18 org.apache.catalina.core.StandardService stop
INFO: Arrêt du service Catalina
15:38:18,704 INFO [/tunnel-web:646] Closing Spring root WebApplicationContext
15:38:18,715 INFO [/tunnel-web:646] Closing WebApplicationContext of Spring FrameworkServlet 'SpringServlet'
18 janv. 2007 15:38:23 org.apache.coyote.http11.Http11BaseProtocol destroy
INFO: Arrêt de Coyote HTTP/1.1 sur http-8080
18 janv. 2007 15:38:23 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Failed shutdown of Apache Portable Runtime
This last APR message is just an info, desactivating the listener in server.xml suppress the message, but the server remain on.