You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by wangke <ke...@hotmail.com> on 2014/03/27 07:18:12 UTC

Why Tomcat crashes



Hi All:
Recently I've encountered a very strange problem, I managed to crash tomcat entirely with my application for a few times. Personally,  I am quite suspicious about the the settings of a shared library libswipl. What I did according to 
https://code.google.com/p/javanaproche/wiki/HowToJPL
is I have Java.library.path point to libswipl for a jar file called JPL (a bidirectional interface between Java and Prolog since I need to run some simple Prolog rules) and then when I start calling JPL provided interface in my application code, the following exceptions are thrown:
Can anybody help me to figure out what happened exactly, BTW, Tomcat is not crashing all the time but fairly frequent though.
Thanks very much.








WARNING: Error while removing context [/XXXXXX]
java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
	at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
	at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
	at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
	at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
	at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
	at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1212)
	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.ClassNotFoundException: org.apache.struts2.util.ObjectFactoryDestroyable
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
	... 16 more
Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[jsp] has not been started
Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[default] has not been started
Mar 26, 2014 6:18:51 PM org.apache.catalina.startup.HostConfig checkResources
WARNING: Error during context [/XXXXXX] destroy
java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
	at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
	at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
	at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
	at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
	at org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1176)
	at org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4976)
	at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1219)
	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
	at java.lang.Thread.run(Thread.java:662)
Mar 26, 2014 6:19:05 PM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
Mar 26, 2014 6:19:06 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Mar 26, 2014 6:19:06 PM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080 
 		 	   		  

Re: Why Tomcat crashes

Posted by Daniel Mikusa <dm...@gopivotal.com>.
On Mar 27, 2014, at 3:01 PM, Daniel Mikusa <dm...@gopivotal.com> wrote:

> On Mar 27, 2014, at 2:10 PM, wangke <ke...@hotmail.com> wrote:
> 
>> 
>> 
>>> Subject: Re: Why Tomcat crashes
>>> From: dmikusa@gopivotal.com
>>> Date: Thu, 27 Mar 2014 07:24:38 -0400
>>> To: users@tomcat.apache.org
>>> 
>>> On Mar 27, 2014, at 2:18 AM, wangke <ke...@hotmail.com> wrote:
>>> 
>>>> 
>>>> 
>>>> 
>>>> Hi All:
>>>> Recently I've encountered a very strange problem, I managed to crash tomcat entirely
>>> 
>>> We need more specifics here. What exactly happens when it crashes? Has the process exited? Do you see a JVM crash dump file? Is the process still running, but your app is not responding (or responding with 404’s)? or something else?
>> 
>> First of all, I can no longer connect to the root directory for tomcat home page and secondly, I do have a JVM crash dump file.
> 
> Since the JVM is crashing, it’s unlikely to be a Tomcat issue.  Probably something with the native code.  If you can include the dump file output here, perhaps someone can give you some clues as to why it’s crashing.
> 
> Dan
> 
> PS.  the list doesn’t do well with attachments, it often strips them off.  If you just copy and paste stuff inline you should be safe.

Disregard that.  I see the attachment on your last email.  Surprisingly it made it through.

Dan


> 
>> 
>> 
>> 
>>> 
>>>> with my application for a few times. Personally, I am quite suspicious about the the settings of a shared library libswipl. What I did according to 
>>>> https://code.google.com/p/javanaproche/wiki/HowToJPL
>>> 
>>> If you’re seeing the process exit, it could be due to a crash in this native code. Generally when this happens you’ll get a JVM crash dump file in the working directory (or the location of -XX:ErrorFile). You’ll want to locate this file as it will contain information about what happened.
>> 
>> Please see the file attached.
>> 
>> 
>> 
>>> 
>>>> is I have Java.library.path point to libswipl for a jar file called JPL (a bidirectional interface between Java and Prolog since I need to run some simple Prolog rules) and then when I start calling JPL provided interface in my application code, the following exceptions are thrown:
>>>> Can anybody help me to figure out what happened exactly, BTW, Tomcat is not crashing all the time but fairly frequent though.
>>>> Thanks very much.
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> WARNING: Error while removing context [/XXXXXX]
>>>> java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
>>>> at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
>>>> at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
>>>> at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
>>>> at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
>>>> at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
>>>> at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
>>>> at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
>>>> at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1212)
>>>> at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
>>>> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
>>>> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
>>>> at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
>>>> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
>>>> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
>>>> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
>>>> at java.lang.Thread.run(Thread.java:662)
>>>> Caused by: java.lang.ClassNotFoundException: org.apache.struts2.util.ObjectFactoryDestroyable
>>>> at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
>>>> at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
>>>> ... 16 more
>>> 
>>> This looks like you’re missing a JAR file, in particular the one that contains “org.apache.struts2.util.ObjectFactoryDestroyable”. Although I’m not sure this is critical as it appears to be happening as Tomcat is shutting down.
>>> 
>>> Dan
>>> 
>>>> Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
>>>> INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[jsp] has not been started
>>>> Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
>>>> INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[default] has not been started
>>>> Mar 26, 2014 6:18:51 PM org.apache.catalina.startup.HostConfig checkResources
>>>> WARNING: Error during context [/XXXXXX] destroy
>>>> java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
>>>> at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
>>>> at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
>>>> at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
>>>> at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
>>>> at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
>>>> at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
>>>> at org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1176)
>>>> at org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4976)
>>>> at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1219)
>>>> at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
>>>> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
>>>> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
>>>> at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
>>>> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
>>>> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
>>>> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
>>>> at java.lang.Thread.run(Thread.java:662)
>>>> Mar 26, 2014 6:19:05 PM org.apache.coyote.http11.Http11Protocol pause
>>>> INFO: Pausing Coyote HTTP/1.1 on http-8080
>>>> Mar 26, 2014 6:19:06 PM org.apache.catalina.core.StandardService stop
>>>> INFO: Stopping service Catalina
>>>> Mar 26, 2014 6:19:06 PM org.apache.coyote.http11.Http11Protocol destroy
>>>> INFO: Stopping Coyote HTTP/1.1 on http-8080 
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>> 
>> <error.log>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org


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


Re: Why Tomcat crashes

Posted by Daniel Mikusa <dm...@gopivotal.com>.
On Mar 27, 2014, at 2:10 PM, wangke <ke...@hotmail.com> wrote:

> 
> 
> > Subject: Re: Why Tomcat crashes
> > From: dmikusa@gopivotal.com
> > Date: Thu, 27 Mar 2014 07:24:38 -0400
> > To: users@tomcat.apache.org
> > 
> > On Mar 27, 2014, at 2:18 AM, wangke <ke...@hotmail.com> wrote:
> > 
> > > 
> > > 
> > > 
> > > Hi All:
> > > Recently I've encountered a very strange problem, I managed to crash tomcat entirely
> > 
> > We need more specifics here. What exactly happens when it crashes? Has the process exited? Do you see a JVM crash dump file? Is the process still running, but your app is not responding (or responding with 404’s)? or something else?
> 
> First of all, I can no longer connect to the root directory for tomcat home page and secondly, I do have a JVM crash dump file.

Since the JVM is crashing, it’s unlikely to be a Tomcat issue.  Probably something with the native code.  If you can include the dump file output here, perhaps someone can give you some clues as to why it’s crashing.

Dan

PS.  the list doesn’t do well with attachments, it often strips them off.  If you just copy and paste stuff inline you should be safe.

> 
> 
> 
> > 
> > > with my application for a few times. Personally, I am quite suspicious about the the settings of a shared library libswipl. What I did according to 
> > > https://code.google.com/p/javanaproche/wiki/HowToJPL
> > 
> > If you’re seeing the process exit, it could be due to a crash in this native code. Generally when this happens you’ll get a JVM crash dump file in the working directory (or the location of -XX:ErrorFile). You’ll want to locate this file as it will contain information about what happened.
> 
> Please see the file attached.
> 
> 
> 
> > 
> > > is I have Java.library.path point to libswipl for a jar file called JPL (a bidirectional interface between Java and Prolog since I need to run some simple Prolog rules) and then when I start calling JPL provided interface in my application code, the following exceptions are thrown:
> > > Can anybody help me to figure out what happened exactly, BTW, Tomcat is not crashing all the time but fairly frequent though.
> > > Thanks very much.
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > WARNING: Error while removing context [/XXXXXX]
> > > java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
> > > at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> > > at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> > > at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> > > at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> > > at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> > > at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> > > at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
> > > at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1212)
> > > at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
> > > at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> > > at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> > > at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> > > at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> > > at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> > > at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> > > at java.lang.Thread.run(Thread.java:662)
> > > Caused by: java.lang.ClassNotFoundException: org.apache.struts2.util.ObjectFactoryDestroyable
> > > at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
> > > at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
> > > ... 16 more
> > 
> > This looks like you’re missing a JAR file, in particular the one that contains “org.apache.struts2.util.ObjectFactoryDestroyable”. Although I’m not sure this is critical as it appears to be happening as Tomcat is shutting down.
> > 
> > Dan
> > 
> > > Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
> > > INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[jsp] has not been started
> > > Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
> > > INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[default] has not been started
> > > Mar 26, 2014 6:18:51 PM org.apache.catalina.startup.HostConfig checkResources
> > > WARNING: Error during context [/XXXXXX] destroy
> > > java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
> > > at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> > > at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> > > at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> > > at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> > > at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> > > at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> > > at org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1176)
> > > at org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4976)
> > > at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1219)
> > > at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
> > > at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> > > at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> > > at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> > > at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> > > at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> > > at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> > > at java.lang.Thread.run(Thread.java:662)
> > > Mar 26, 2014 6:19:05 PM org.apache.coyote.http11.Http11Protocol pause
> > > INFO: Pausing Coyote HTTP/1.1 on http-8080
> > > Mar 26, 2014 6:19:06 PM org.apache.catalina.core.StandardService stop
> > > INFO: Stopping service Catalina
> > > Mar 26, 2014 6:19:06 PM org.apache.coyote.http11.Http11Protocol destroy
> > > INFO: Stopping Coyote HTTP/1.1 on http-8080 
> > > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> > 
> <error.log>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org


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


RE: Why Tomcat crashes

Posted by wangke <ke...@hotmail.com>.

> Subject: Re: Why Tomcat crashes
> From: dmikusa@gopivotal.com
> Date: Thu, 27 Mar 2014 07:24:38 -0400
> To: users@tomcat.apache.org
> 
> On Mar 27, 2014, at 2:18 AM, wangke <ke...@hotmail.com> wrote:
> 
> > 
> > 
> > 
> > Hi All:
> > Recently I've encountered a very strange problem, I managed to crash tomcat entirely
> 
> We need more specifics here.  What exactly happens when it crashes?  Has the process exited?  Do you see a JVM crash dump file?  Is the process still running, but your app is not responding (or responding with 404��s)?  or something else?
First of all, I can no longer connect to the root directory for tomcat home page and secondly, I do have a JVM crash dump file.


> 
> > with my application for a few times. Personally,  I am quite suspicious about the the settings of a shared library libswipl. What I did according to 
> > https://code.google.com/p/javanaproche/wiki/HowToJPL
> 
> If you��re seeing the process exit, it could be due to a crash in this native code.  Generally when this happens you��ll get a JVM crash dump file in the working directory (or the location of -XX:ErrorFile).  You��ll want to locate this file as it will contain information about what happened.
Please see the file attached.


> 
> > is I have Java.library.path point to libswipl for a jar file called JPL (a bidirectional interface between Java and Prolog since I need to run some simple Prolog rules) and then when I start calling JPL provided interface in my application code, the following exceptions are thrown:
> > Can anybody help me to figure out what happened exactly, BTW, Tomcat is not crashing all the time but fairly frequent though.
> > Thanks very much.
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > WARNING: Error while removing context [/XXXXXX]
> > java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
> > 	at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> > 	at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> > 	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> > 	at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> > 	at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> > 	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> > 	at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
> > 	at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1212)
> > 	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
> > 	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> > 	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> > 	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> > 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> > 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> > 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> > 	at java.lang.Thread.run(Thread.java:662)
> > Caused by: java.lang.ClassNotFoundException: org.apache.struts2.util.ObjectFactoryDestroyable
> > 	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
> > 	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
> > 	... 16 more
> 
> This looks like you��re missing a JAR file, in particular the one that contains ��org.apache.struts2.util.ObjectFactoryDestroyable��.  Although I��m not sure this is critical as it appears to be happening as Tomcat is shutting down.
> 
> Dan
> 
> > Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
> > INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[jsp] has not been started
> > Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
> > INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[default] has not been started
> > Mar 26, 2014 6:18:51 PM org.apache.catalina.startup.HostConfig checkResources
> > WARNING: Error during context [/XXXXXX] destroy
> > java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
> > 	at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> > 	at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> > 	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> > 	at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> > 	at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> > 	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> > 	at org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1176)
> > 	at org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4976)
> > 	at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1219)
> > 	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
> > 	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> > 	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> > 	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> > 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> > 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> > 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> > 	at java.lang.Thread.run(Thread.java:662)
> > Mar 26, 2014 6:19:05 PM org.apache.coyote.http11.Http11Protocol pause
> > INFO: Pausing Coyote HTTP/1.1 on http-8080
> > Mar 26, 2014 6:19:06 PM org.apache.catalina.core.StandardService stop
> > INFO: Stopping service Catalina
> > Mar 26, 2014 6:19:06 PM org.apache.coyote.http11.Http11Protocol destroy
> > INFO: Stopping Coyote HTTP/1.1 on http-8080 
> > 		 	   		  
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
 		 	   		  

Re: Why Tomcat crashes

Posted by Daniel Mikusa <dm...@gopivotal.com>.
On Mar 27, 2014, at 2:18 AM, wangke <ke...@hotmail.com> wrote:

> 
> 
> 
> Hi All:
> Recently I've encountered a very strange problem, I managed to crash tomcat entirely

We need more specifics here.  What exactly happens when it crashes?  Has the process exited?  Do you see a JVM crash dump file?  Is the process still running, but your app is not responding (or responding with 404’s)?  or something else?

> with my application for a few times. Personally,  I am quite suspicious about the the settings of a shared library libswipl. What I did according to 
> https://code.google.com/p/javanaproche/wiki/HowToJPL

If you’re seeing the process exit, it could be due to a crash in this native code.  Generally when this happens you’ll get a JVM crash dump file in the working directory (or the location of -XX:ErrorFile).  You’ll want to locate this file as it will contain information about what happened.

> is I have Java.library.path point to libswipl for a jar file called JPL (a bidirectional interface between Java and Prolog since I need to run some simple Prolog rules) and then when I start calling JPL provided interface in my application code, the following exceptions are thrown:
> Can anybody help me to figure out what happened exactly, BTW, Tomcat is not crashing all the time but fairly frequent though.
> Thanks very much.
> 
> 
> 
> 
> 
> 
> 
> 
> WARNING: Error while removing context [/XXXXXX]
> java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
> 	at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> 	at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> 	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> 	at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> 	at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> 	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> 	at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
> 	at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1212)
> 	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
> 	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> 	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> 	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> 	at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.ClassNotFoundException: org.apache.struts2.util.ObjectFactoryDestroyable
> 	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
> 	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
> 	... 16 more

This looks like you’re missing a JAR file, in particular the one that contains “org.apache.struts2.util.ObjectFactoryDestroyable”.  Although I’m not sure this is critical as it appears to be happening as Tomcat is shutting down.

Dan

> Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
> INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[jsp] has not been started
> Mar 26, 2014 6:18:51 PM org.apache.catalina.core.ContainerBase stop
> INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[default] has not been started
> Mar 26, 2014 6:18:51 PM org.apache.catalina.startup.HostConfig checkResources
> WARNING: Error during context [/XXXXXX] destroy
> java.lang.NoClassDefFoundError: org/apache/struts2/util/ObjectFactoryDestroyable
> 	at org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> 	at org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> 	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> 	at org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> 	at org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> 	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> 	at org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1176)
> 	at org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4976)
> 	at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1219)
> 	at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
> 	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> 	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> 	at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> 	at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> 	at java.lang.Thread.run(Thread.java:662)
> Mar 26, 2014 6:19:05 PM org.apache.coyote.http11.Http11Protocol pause
> INFO: Pausing Coyote HTTP/1.1 on http-8080
> Mar 26, 2014 6:19:06 PM org.apache.catalina.core.StandardService stop
> INFO: Stopping service Catalina
> Mar 26, 2014 6:19:06 PM org.apache.coyote.http11.Http11Protocol destroy
> INFO: Stopping Coyote HTTP/1.1 on http-8080 
> 		 	   		  


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


RE: Why Tomcat crashes

Posted by wangke <ke...@hotmail.com>.
Thanks very much


> Subject: Re: Why Tomcat crashes
> From: dmikusa@gopivotal.com
> Date: Fri, 28 Mar 2014 17:54:05 -0400
> To: users@tomcat.apache.org
> 
> On Mar 27, 2014, at 2:20 PM, wangke <ke...@hotmail.com> wrote:
> 
> > 
> > 
> >> Date: Thu, 27 Mar 2014 12:20:28 -0400
> >> From: chris@christopherschultz.net
> >> To: users@tomcat.apache.org
> >> Subject: Re: Why Tomcat crashes
> >> 
> >> -----BEGIN PGP SIGNED MESSAGE-----
> >> Hash: SHA256
> >> 
> >> Wangke,
> >> 
> >> On 3/27/14, 2:18 AM, wangke wrote:
> >>> Hi All: Recently I've encountered a very strange problem, I managed
> >>> to crash tomcat entirely with my application for a few times.
> >>> Personally,  I am quite suspicious about the the settings of a
> >>> shared library libswipl. What I did according to 
> >>> https://code.google.com/p/javanaproche/wiki/HowToJPL is I have
> >>> Java.library.path point to libswipl for a jar file called JPL (a
> >>> bidirectional interface between Java and Prolog since I need to run
> >>> some simple Prolog rules) and then when I start calling JPL
> >>> provided interface in my application code, the following exceptions
> >>> are thrown:
> 
> Looking at the crash dump file, here’s the stack trace leading up to the crash.
> 
> Stack: [0x00007fd8276f7000,0x00007fd8277f8000],  sp=0x00007fd8277f3548,  free space=1009k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
> C  [libpthread.so.0+0xcf60]  pthread_kill+0x0
> 
> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
> J  jpl.fli.Prolog.next_solution(Ljpl/fli/qid_t;)Z
> J  jpl.Query.hasMoreSolutions()Z
> j  jpl.Query.oneSolution()Ljava/util/Hashtable;+18
> j  jpl.Query.hasSolution()Z+1
> j  jpl.Query.hasSolution(Ljava/lang/String;)Z+8
> J  iGeotutor_engine.WorkFlow.consultProlog(Ljava/lang/String;Ljava/util/Map;)V
> …
> 
> Which points towards the JPL library that you’re using.  Perhaps you could check with the maintainers of that project and see if they have seen similar errors or could assist in debugging the issue further.
> 
> Dan
> 
> >> 
> >> That sounds like a lot of fun!
> >> 
> >>> Can anybody help me to figure out what happened exactly, BTW,
> >>> Tomcat is not crashing all the time but fairly frequent though. 
> >>> Thanks very much.
> >>> 
> >>> WARNING: Error while removing context [/XXXXXX] 
> >>> java.lang.NoClassDefFoundError:
> >>> org/apache/struts2/util/ObjectFactoryDestroyable at
> >>> org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> >>> 
> >>> 
> >> at
> >> org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> >>> at
> >>> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> >>> at
> >>> org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> >>> 
> >>> 
> >> at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> >>> at
> >>> org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1212)
> >>> at
> >>> org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382) 
> >>> at
> >>> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> >>> at
> >>> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> >>> at
> >>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> >>> at java.lang.Thread.run(Thread.java:662) Caused by:
> >>> java.lang.ClassNotFoundException:
> >>> org.apache.struts2.util.ObjectFactoryDestroyable at
> >>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
> >>> ... 16 more Mar 26, 2014 6:18:51 PM
> >>> org.apache.catalina.core.ContainerBase stop INFO: Container
> >>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[jsp]
> >>> has not been started Mar 26, 2014 6:18:51 PM
> >>> org.apache.catalina.core.ContainerBase stop INFO: Container
> >>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[default]
> >>> has not been started Mar 26, 2014 6:18:51 PM
> >>> org.apache.catalina.startup.HostConfig checkResources WARNING:
> >>> Error during context [/XXXXXX] destroy 
> >>> java.lang.NoClassDefFoundError:
> >>> org/apache/struts2/util/ObjectFactoryDestroyable at
> >>> org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> >>> 
> >>> 
> >> at
> >> org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> >>> at
> >>> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> >>> at
> >>> org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> >>> 
> >>> 
> >> at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> >>> at
> >>> org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1176)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4976)
> >>> at
> >>> org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1219)
> >>> 
> >>> 
> >> at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
> >>> at
> >>> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> >>> at
> >>> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> >>> at
> >>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> >>> 
> >>> 
> >> at
> >> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> >>> at java.lang.Thread.run(Thread.java:662) Mar 26, 2014 6:19:05 PM
> >>> org.apache.coyote.http11.Http11Protocol pause INFO: Pausing Coyote
> >>> HTTP/1.1 on http-8080 Mar 26, 2014 6:19:06 PM
> >>> org.apache.catalina.core.StandardService stop INFO: Stopping
> >>> service Catalina Mar 26, 2014 6:19:06 PM
> >>> org.apache.coyote.http11.Http11Protocol destroy INFO: Stopping
> >>> Coyote HTTP/1.1 on http-8080
> >> 
> >> It looks like Tomcat is stopping -- really shutting-down your web
> >> application, but something is trying to load classes after the
> >> WebappClassLoadet for your webapp has been marked as stopped.
> >> 
> >> This can happen under something like the following:
> >> 
> >> 1. Application is running fine
> >> 2. Application launches a thread
> >> 3. Application is stopped
> >> [time passes, maybe only a few ms]
> >> 4. The thread from #2 attempts to perform an operation which requires
> >> a class to be loaded (e.g. ObjectFactoryDestroyable from above)
> >> 5. You get an error from the WebappClassLoader because the application
> >> stopped in step #3
> >> 
> >> If you re-deploy your web application, this kind of thing can easily
> >> happen to the "old" application while the new copy is running.
> >> 
> >> Given the stack trace above, it seems like Tomcat is trying to
> >> intentionally stop your web application (your Filter is being
> >> shut-down) and so the WebappClassLoader should still be valid. Is it
> >> possible that the Struts component you are using plays games with the
> >> ClassLoader and so it's using the wrong one? For example, it may cache
> >> the first ClassLoader that was used for some static operation, and
> >> then retain it longer than appropriate. You would then have an error
> >> the *second* time you tried to re-deploy.
> > Thanks very much for the detailed analysis, I mean I am no Struts expert at all, I will not get into those kind of fancy techniques to play with the classLoader by any means. From your suggestions, I think the best way to do is to test my app on a stand-alone java application rather than a Struts and see what happened, if the application still crashed that means it has nothing to do with struts or tomcat at all, but if it did not crash, then I may have to come back to bother you again. :)
> > Thanks anyway
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> >> 
> >> - -chris
> >> -----BEGIN PGP SIGNATURE-----
> >> Version: GnuPG v1
> >> Comment: GPGTools - http://gpgtools.org
> >> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
> >> 
> >> iQIcBAEBCAAGBQJTNE/MAAoJEBzwKT+lPKRYj2wP/RKtRO5m/IRNjRRSicKeSBDD
> >> AFhYbh5I8ESipHgFSv60sUgEUMIWrYnAW9xUdVKlGei18U27+8gjEalROXIwMDx7
> >> KyICJWU6ykJQCVOmxxEiWOq61RGN811bgs4lL2sCYDpm5zkUtycauhenuWgG6NFC
> >> +YbFc3wQdrHErLknmM4XppdZNzQUCH9Sgrb2AOC/SKaxqTyyCRTXUIDkhfzbY1Ne
> >> f4FqkSXmxPjWOxJ0VeMrC18GOJx2sQfCJO87OUNWs4f+sx/Wgl4abtcsQ0DbrMoJ
> >> o8zUFg+vvsLd9BPJJuCvoMSYaggJUW9IgbdtOgqu1UUQ7iTdaZsLsklVc0nvYL7R
> >> wdVTauWLM+YFHEVcwL6d2XD9ecdDsUt7YMj+C6yU3n331FYK9GTtl+LRtYA69h70
> >> 2Z/w+yE/9ZEg0FVYVTaFRIRjsqDd1yOBQwnGDRWihOC5SUfGhrnz495BM+Y6v7cQ
> >> OtK4DdpblrktCJeLX6EUlmZw2MNqDGN+KRDWj79A4BLqexDhRjzIDoRTj3aP2qF4
> >> cl3X8gKh4dbtLER6Gvq8lecvIXtxJ8QifOGsHoSxArU1Qi+y/n4+Mjzsh0yRn5Nw
> >> GEyZf8rzeHUvoKjFsMeZlVokzWg5MBa6mgPk9e68xeRn8TkikcU8hJ0s9MeFZ0Mq
> >> //Vwg5wjlpNJhSYNcLEl
> >> =JoZT
> >> -----END PGP SIGNATURE-----
> >> 
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: users-help@tomcat.apache.org
> >> 
> > 		 	   		  
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
 		 	   		  

Re: Why Tomcat crashes

Posted by Daniel Mikusa <dm...@gopivotal.com>.
On Mar 27, 2014, at 2:20 PM, wangke <ke...@hotmail.com> wrote:

> 
> 
>> Date: Thu, 27 Mar 2014 12:20:28 -0400
>> From: chris@christopherschultz.net
>> To: users@tomcat.apache.org
>> Subject: Re: Why Tomcat crashes
>> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>> 
>> Wangke,
>> 
>> On 3/27/14, 2:18 AM, wangke wrote:
>>> Hi All: Recently I've encountered a very strange problem, I managed
>>> to crash tomcat entirely with my application for a few times.
>>> Personally,  I am quite suspicious about the the settings of a
>>> shared library libswipl. What I did according to 
>>> https://code.google.com/p/javanaproche/wiki/HowToJPL is I have
>>> Java.library.path point to libswipl for a jar file called JPL (a
>>> bidirectional interface between Java and Prolog since I need to run
>>> some simple Prolog rules) and then when I start calling JPL
>>> provided interface in my application code, the following exceptions
>>> are thrown:

Looking at the crash dump file, here’s the stack trace leading up to the crash.

Stack: [0x00007fd8276f7000,0x00007fd8277f8000],  sp=0x00007fd8277f3548,  free space=1009k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libpthread.so.0+0xcf60]  pthread_kill+0x0

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
J  jpl.fli.Prolog.next_solution(Ljpl/fli/qid_t;)Z
J  jpl.Query.hasMoreSolutions()Z
j  jpl.Query.oneSolution()Ljava/util/Hashtable;+18
j  jpl.Query.hasSolution()Z+1
j  jpl.Query.hasSolution(Ljava/lang/String;)Z+8
J  iGeotutor_engine.WorkFlow.consultProlog(Ljava/lang/String;Ljava/util/Map;)V
…

Which points towards the JPL library that you’re using.  Perhaps you could check with the maintainers of that project and see if they have seen similar errors or could assist in debugging the issue further.

Dan

>> 
>> That sounds like a lot of fun!
>> 
>>> Can anybody help me to figure out what happened exactly, BTW,
>>> Tomcat is not crashing all the time but fairly frequent though. 
>>> Thanks very much.
>>> 
>>> WARNING: Error while removing context [/XXXXXX] 
>>> java.lang.NoClassDefFoundError:
>>> org/apache/struts2/util/ObjectFactoryDestroyable at
>>> org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
>>> 
>>> 
>> at
>> org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
>>> at
>>> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
>>> 
>>> 
>> at
>> org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
>>> at
>>> org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
>>> 
>>> 
>> at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
>>> at
>>> org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
>>> 
>>> 
>> at
>> org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1212)
>>> at
>>> org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382) 
>>> at
>>> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
>>> 
>>> 
>> at
>> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
>>> at
>>> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
>>> 
>>> 
>> at
>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
>>> at
>>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
>>> 
>>> 
>> at
>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
>>> at java.lang.Thread.run(Thread.java:662) Caused by:
>>> java.lang.ClassNotFoundException:
>>> org.apache.struts2.util.ObjectFactoryDestroyable at
>>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
>>> 
>>> 
>> at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
>>> ... 16 more Mar 26, 2014 6:18:51 PM
>>> org.apache.catalina.core.ContainerBase stop INFO: Container
>>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[jsp]
>>> has not been started Mar 26, 2014 6:18:51 PM
>>> org.apache.catalina.core.ContainerBase stop INFO: Container
>>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[default]
>>> has not been started Mar 26, 2014 6:18:51 PM
>>> org.apache.catalina.startup.HostConfig checkResources WARNING:
>>> Error during context [/XXXXXX] destroy 
>>> java.lang.NoClassDefFoundError:
>>> org/apache/struts2/util/ObjectFactoryDestroyable at
>>> org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
>>> 
>>> 
>> at
>> org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
>>> at
>>> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
>>> 
>>> 
>> at
>> org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
>>> at
>>> org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
>>> 
>>> 
>> at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
>>> at
>>> org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1176)
>>> 
>>> 
>> at
>> org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4976)
>>> at
>>> org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1219)
>>> 
>>> 
>> at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
>>> at
>>> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
>>> 
>>> 
>> at
>> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
>>> at
>>> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
>>> 
>>> 
>> at
>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
>>> at
>>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
>>> 
>>> 
>> at
>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
>>> at java.lang.Thread.run(Thread.java:662) Mar 26, 2014 6:19:05 PM
>>> org.apache.coyote.http11.Http11Protocol pause INFO: Pausing Coyote
>>> HTTP/1.1 on http-8080 Mar 26, 2014 6:19:06 PM
>>> org.apache.catalina.core.StandardService stop INFO: Stopping
>>> service Catalina Mar 26, 2014 6:19:06 PM
>>> org.apache.coyote.http11.Http11Protocol destroy INFO: Stopping
>>> Coyote HTTP/1.1 on http-8080
>> 
>> It looks like Tomcat is stopping -- really shutting-down your web
>> application, but something is trying to load classes after the
>> WebappClassLoadet for your webapp has been marked as stopped.
>> 
>> This can happen under something like the following:
>> 
>> 1. Application is running fine
>> 2. Application launches a thread
>> 3. Application is stopped
>> [time passes, maybe only a few ms]
>> 4. The thread from #2 attempts to perform an operation which requires
>> a class to be loaded (e.g. ObjectFactoryDestroyable from above)
>> 5. You get an error from the WebappClassLoader because the application
>> stopped in step #3
>> 
>> If you re-deploy your web application, this kind of thing can easily
>> happen to the "old" application while the new copy is running.
>> 
>> Given the stack trace above, it seems like Tomcat is trying to
>> intentionally stop your web application (your Filter is being
>> shut-down) and so the WebappClassLoader should still be valid. Is it
>> possible that the Struts component you are using plays games with the
>> ClassLoader and so it's using the wrong one? For example, it may cache
>> the first ClassLoader that was used for some static operation, and
>> then retain it longer than appropriate. You would then have an error
>> the *second* time you tried to re-deploy.
> Thanks very much for the detailed analysis, I mean I am no Struts expert at all, I will not get into those kind of fancy techniques to play with the classLoader by any means. From your suggestions, I think the best way to do is to test my app on a stand-alone java application rather than a Struts and see what happened, if the application still crashed that means it has nothing to do with struts or tomcat at all, but if it did not crash, then I may have to come back to bother you again. :)
> Thanks anyway
> 
> 
> 
> 
> 
> 
> 
> 
>> 
>> - -chris
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1
>> Comment: GPGTools - http://gpgtools.org
>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>> 
>> iQIcBAEBCAAGBQJTNE/MAAoJEBzwKT+lPKRYj2wP/RKtRO5m/IRNjRRSicKeSBDD
>> AFhYbh5I8ESipHgFSv60sUgEUMIWrYnAW9xUdVKlGei18U27+8gjEalROXIwMDx7
>> KyICJWU6ykJQCVOmxxEiWOq61RGN811bgs4lL2sCYDpm5zkUtycauhenuWgG6NFC
>> +YbFc3wQdrHErLknmM4XppdZNzQUCH9Sgrb2AOC/SKaxqTyyCRTXUIDkhfzbY1Ne
>> f4FqkSXmxPjWOxJ0VeMrC18GOJx2sQfCJO87OUNWs4f+sx/Wgl4abtcsQ0DbrMoJ
>> o8zUFg+vvsLd9BPJJuCvoMSYaggJUW9IgbdtOgqu1UUQ7iTdaZsLsklVc0nvYL7R
>> wdVTauWLM+YFHEVcwL6d2XD9ecdDsUt7YMj+C6yU3n331FYK9GTtl+LRtYA69h70
>> 2Z/w+yE/9ZEg0FVYVTaFRIRjsqDd1yOBQwnGDRWihOC5SUfGhrnz495BM+Y6v7cQ
>> OtK4DdpblrktCJeLX6EUlmZw2MNqDGN+KRDWj79A4BLqexDhRjzIDoRTj3aP2qF4
>> cl3X8gKh4dbtLER6Gvq8lecvIXtxJ8QifOGsHoSxArU1Qi+y/n4+Mjzsh0yRn5Nw
>> GEyZf8rzeHUvoKjFsMeZlVokzWg5MBa6mgPk9e68xeRn8TkikcU8hJ0s9MeFZ0Mq
>> //Vwg5wjlpNJhSYNcLEl
>> =JoZT
>> -----END PGP SIGNATURE-----
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>> 
> 		 	   		  


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


RE: Why Tomcat crashes

Posted by wangke <ke...@hotmail.com>.

> Date: Thu, 27 Mar 2014 12:20:28 -0400
> From: chris@christopherschultz.net
> To: users@tomcat.apache.org
> Subject: Re: Why Tomcat crashes
> 
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> Wangke,
> 
> On 3/27/14, 2:18 AM, wangke wrote:
> > Hi All: Recently I've encountered a very strange problem, I managed
> > to crash tomcat entirely with my application for a few times.
> > Personally,  I am quite suspicious about the the settings of a
> > shared library libswipl. What I did according to 
> > https://code.google.com/p/javanaproche/wiki/HowToJPL is I have
> > Java.library.path point to libswipl for a jar file called JPL (a
> > bidirectional interface between Java and Prolog since I need to run
> > some simple Prolog rules) and then when I start calling JPL
> > provided interface in my application code, the following exceptions
> > are thrown:
> 
> That sounds like a lot of fun!
> 
> > Can anybody help me to figure out what happened exactly, BTW,
> > Tomcat is not crashing all the time but fairly frequent though. 
> > Thanks very much.
> > 
> > WARNING: Error while removing context [/XXXXXX] 
> > java.lang.NoClassDefFoundError:
> > org/apache/struts2/util/ObjectFactoryDestroyable at
> > org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> >
> > 
> at
> org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> > at
> > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> >
> > 
> at
> org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> > at
> > org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> >
> > 
> at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> > at
> > org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
> >
> > 
> at
> org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1212)
> > at
> > org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382) 
> > at
> > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> >
> > 
> at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> > at
> > org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> >
> > 
> at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> > at
> > org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> >
> > 
> at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> > at java.lang.Thread.run(Thread.java:662) Caused by:
> > java.lang.ClassNotFoundException:
> > org.apache.struts2.util.ObjectFactoryDestroyable at
> > org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
> >
> > 
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
> > ... 16 more Mar 26, 2014 6:18:51 PM
> > org.apache.catalina.core.ContainerBase stop INFO: Container
> > org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[jsp]
> > has not been started Mar 26, 2014 6:18:51 PM
> > org.apache.catalina.core.ContainerBase stop INFO: Container
> > org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[default]
> > has not been started Mar 26, 2014 6:18:51 PM
> > org.apache.catalina.startup.HostConfig checkResources WARNING:
> > Error during context [/XXXXXX] destroy 
> > java.lang.NoClassDefFoundError:
> > org/apache/struts2/util/ObjectFactoryDestroyable at
> > org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
> >
> > 
> at
> org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> > at
> > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
> >
> > 
> at
> org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> > at
> > org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
> >
> > 
> at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> > at
> > org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1176)
> >
> > 
> at
> org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4976)
> > at
> > org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1219)
> >
> > 
> at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
> > at
> > org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
> >
> > 
> at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> > at
> > org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
> >
> > 
> at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> > at
> > org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
> >
> > 
> at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> > at java.lang.Thread.run(Thread.java:662) Mar 26, 2014 6:19:05 PM
> > org.apache.coyote.http11.Http11Protocol pause INFO: Pausing Coyote
> > HTTP/1.1 on http-8080 Mar 26, 2014 6:19:06 PM
> > org.apache.catalina.core.StandardService stop INFO: Stopping
> > service Catalina Mar 26, 2014 6:19:06 PM
> > org.apache.coyote.http11.Http11Protocol destroy INFO: Stopping
> > Coyote HTTP/1.1 on http-8080
> 
> It looks like Tomcat is stopping -- really shutting-down your web
> application, but something is trying to load classes after the
> WebappClassLoadet for your webapp has been marked as stopped.
> 
> This can happen under something like the following:
> 
> 1. Application is running fine
> 2. Application launches a thread
> 3. Application is stopped
> [time passes, maybe only a few ms]
> 4. The thread from #2 attempts to perform an operation which requires
> a class to be loaded (e.g. ObjectFactoryDestroyable from above)
> 5. You get an error from the WebappClassLoader because the application
> stopped in step #3
> 
> If you re-deploy your web application, this kind of thing can easily
> happen to the "old" application while the new copy is running.
> 
> Given the stack trace above, it seems like Tomcat is trying to
> intentionally stop your web application (your Filter is being
> shut-down) and so the WebappClassLoader should still be valid. Is it
> possible that the Struts component you are using plays games with the
> ClassLoader and so it's using the wrong one? For example, it may cache
> the first ClassLoader that was used for some static operation, and
> then retain it longer than appropriate. You would then have an error
> the *second* time you tried to re-deploy.
Thanks very much for the detailed analysis, I mean I am no Struts expert at all, I will not get into those kind of fancy techniques to play with the classLoader by any means. From your suggestions, I think the best way to do is to test my app on a stand-alone java application rather than a Struts and see what happened, if the application still crashed that means it has nothing to do with struts or tomcat at all, but if it did not crash, then I may have to come back to bother you again. :)
Thanks anyway








> 
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
> Comment: GPGTools - http://gpgtools.org
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
> 
> iQIcBAEBCAAGBQJTNE/MAAoJEBzwKT+lPKRYj2wP/RKtRO5m/IRNjRRSicKeSBDD
> AFhYbh5I8ESipHgFSv60sUgEUMIWrYnAW9xUdVKlGei18U27+8gjEalROXIwMDx7
> KyICJWU6ykJQCVOmxxEiWOq61RGN811bgs4lL2sCYDpm5zkUtycauhenuWgG6NFC
> +YbFc3wQdrHErLknmM4XppdZNzQUCH9Sgrb2AOC/SKaxqTyyCRTXUIDkhfzbY1Ne
> f4FqkSXmxPjWOxJ0VeMrC18GOJx2sQfCJO87OUNWs4f+sx/Wgl4abtcsQ0DbrMoJ
> o8zUFg+vvsLd9BPJJuCvoMSYaggJUW9IgbdtOgqu1UUQ7iTdaZsLsklVc0nvYL7R
> wdVTauWLM+YFHEVcwL6d2XD9ecdDsUt7YMj+C6yU3n331FYK9GTtl+LRtYA69h70
> 2Z/w+yE/9ZEg0FVYVTaFRIRjsqDd1yOBQwnGDRWihOC5SUfGhrnz495BM+Y6v7cQ
> OtK4DdpblrktCJeLX6EUlmZw2MNqDGN+KRDWj79A4BLqexDhRjzIDoRTj3aP2qF4
> cl3X8gKh4dbtLER6Gvq8lecvIXtxJ8QifOGsHoSxArU1Qi+y/n4+Mjzsh0yRn5Nw
> GEyZf8rzeHUvoKjFsMeZlVokzWg5MBa6mgPk9e68xeRn8TkikcU8hJ0s9MeFZ0Mq
> //Vwg5wjlpNJhSYNcLEl
> =JoZT
> -----END PGP SIGNATURE-----
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
 		 	   		  

Re: Why Tomcat crashes

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Wangke,

On 3/27/14, 2:18 AM, wangke wrote:
> Hi All: Recently I've encountered a very strange problem, I managed
> to crash tomcat entirely with my application for a few times.
> Personally,  I am quite suspicious about the the settings of a
> shared library libswipl. What I did according to 
> https://code.google.com/p/javanaproche/wiki/HowToJPL is I have
> Java.library.path point to libswipl for a jar file called JPL (a
> bidirectional interface between Java and Prolog since I need to run
> some simple Prolog rules) and then when I start calling JPL
> provided interface in my application code, the following exceptions
> are thrown:

That sounds like a lot of fun!

> Can anybody help me to figure out what happened exactly, BTW,
> Tomcat is not crashing all the time but fairly frequent though. 
> Thanks very much.
> 
> WARNING: Error while removing context [/XXXXXX] 
> java.lang.NoClassDefFoundError:
> org/apache/struts2/util/ObjectFactoryDestroyable at
> org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
>
> 
at
org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> at
> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
>
> 
at
org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> at
> org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
>
> 
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> at
> org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
>
> 
at
org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1212)
> at
> org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382) 
> at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
>
> 
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> at
> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
>
> 
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
>
> 
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> at java.lang.Thread.run(Thread.java:662) Caused by:
> java.lang.ClassNotFoundException:
> org.apache.struts2.util.ObjectFactoryDestroyable at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
>
> 
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
> ... 16 more Mar 26, 2014 6:18:51 PM
> org.apache.catalina.core.ContainerBase stop INFO: Container
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[jsp]
> has not been started Mar 26, 2014 6:18:51 PM
> org.apache.catalina.core.ContainerBase stop INFO: Container
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/XXXXXX].[default]
> has not been started Mar 26, 2014 6:18:51 PM
> org.apache.catalina.startup.HostConfig checkResources WARNING:
> Error during context [/XXXXXX] destroy 
> java.lang.NoClassDefFoundError:
> org/apache/struts2/util/ObjectFactoryDestroyable at
> org.apache.struts2.dispatcher.Dispatcher.cleanup(Dispatcher.java:265)
>
> 
at
org.apache.struts2.dispatcher.ng.PrepareOperations.cleanupDispatcher(PrepareOperations.java:188)
> at
> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.destroy(StrutsPrepareAndExecuteFilter.java:100)
>
> 
at
org.apache.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:358)
> at
> org.apache.catalina.core.StandardContext.filterStop(StandardContext.java:4107)
>
> 
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> at
> org.apache.catalina.core.ContainerBase.destroy(ContainerBase.java:1176)
>
> 
at
org.apache.catalina.core.StandardContext.destroy(StandardContext.java:4976)
> at
> org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1219)
>
> 
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
> at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
>
> 
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> at
> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
>
> 
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
> at
> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
>
> 
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
> at java.lang.Thread.run(Thread.java:662) Mar 26, 2014 6:19:05 PM
> org.apache.coyote.http11.Http11Protocol pause INFO: Pausing Coyote
> HTTP/1.1 on http-8080 Mar 26, 2014 6:19:06 PM
> org.apache.catalina.core.StandardService stop INFO: Stopping
> service Catalina Mar 26, 2014 6:19:06 PM
> org.apache.coyote.http11.Http11Protocol destroy INFO: Stopping
> Coyote HTTP/1.1 on http-8080

It looks like Tomcat is stopping -- really shutting-down your web
application, but something is trying to load classes after the
WebappClassLoadet for your webapp has been marked as stopped.

This can happen under something like the following:

1. Application is running fine
2. Application launches a thread
3. Application is stopped
[time passes, maybe only a few ms]
4. The thread from #2 attempts to perform an operation which requires
a class to be loaded (e.g. ObjectFactoryDestroyable from above)
5. You get an error from the WebappClassLoader because the application
stopped in step #3

If you re-deploy your web application, this kind of thing can easily
happen to the "old" application while the new copy is running.

Given the stack trace above, it seems like Tomcat is trying to
intentionally stop your web application (your Filter is being
shut-down) and so the WebappClassLoader should still be valid. Is it
possible that the Struts component you are using plays games with the
ClassLoader and so it's using the wrong one? For example, it may cache
the first ClassLoader that was used for some static operation, and
then retain it longer than appropriate. You would then have an error
the *second* time you tried to re-deploy.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJTNE/MAAoJEBzwKT+lPKRYj2wP/RKtRO5m/IRNjRRSicKeSBDD
AFhYbh5I8ESipHgFSv60sUgEUMIWrYnAW9xUdVKlGei18U27+8gjEalROXIwMDx7
KyICJWU6ykJQCVOmxxEiWOq61RGN811bgs4lL2sCYDpm5zkUtycauhenuWgG6NFC
+YbFc3wQdrHErLknmM4XppdZNzQUCH9Sgrb2AOC/SKaxqTyyCRTXUIDkhfzbY1Ne
f4FqkSXmxPjWOxJ0VeMrC18GOJx2sQfCJO87OUNWs4f+sx/Wgl4abtcsQ0DbrMoJ
o8zUFg+vvsLd9BPJJuCvoMSYaggJUW9IgbdtOgqu1UUQ7iTdaZsLsklVc0nvYL7R
wdVTauWLM+YFHEVcwL6d2XD9ecdDsUt7YMj+C6yU3n331FYK9GTtl+LRtYA69h70
2Z/w+yE/9ZEg0FVYVTaFRIRjsqDd1yOBQwnGDRWihOC5SUfGhrnz495BM+Y6v7cQ
OtK4DdpblrktCJeLX6EUlmZw2MNqDGN+KRDWj79A4BLqexDhRjzIDoRTj3aP2qF4
cl3X8gKh4dbtLER6Gvq8lecvIXtxJ8QifOGsHoSxArU1Qi+y/n4+Mjzsh0yRn5Nw
GEyZf8rzeHUvoKjFsMeZlVokzWg5MBa6mgPk9e68xeRn8TkikcU8hJ0s9MeFZ0Mq
//Vwg5wjlpNJhSYNcLEl
=JoZT
-----END PGP SIGNATURE-----

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