You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "David Jencks (JIRA)" <de...@geronimo.apache.org> on 2005/08/10 18:59:39 UTC
[jira] Assigned: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception
[ http://issues.apache.org/jira/browse/GERONIMO-484?page=all ]
David Jencks reassigned GERONIMO-484:
-------------------------------------
Assign To: David Jencks
> Repeated Deploys of WAR Generate OOM Exception
> ----------------------------------------------
>
> Key: GERONIMO-484
> URL: http://issues.apache.org/jira/browse/GERONIMO-484
> Project: Geronimo
> Type: Bug
> Components: web
> Versions: 1.0-M3
> Environment: WinXP SP2, JDK 1.4.2_05
> Reporter: Seth Ladd
> Assignee: David Jencks
> Fix For: 1.0-M5
> Attachments: minimaltest.war, over-and-over.sh
>
> Hello,
> I have just run a test that tests Geronimo's ability to redeploy .war
> files. The results don't look so good, but I'm hoping the info I've
> collected will help expose the problem (whether the problem is with me
> or the server :)
> I've included the script, .war file, web.xml, and two exception traces
> (one from the deploy client and one from the server) I apologize for
> the length of this post. If there's a better way to include all this
> information, please let me know.
> It appears as if the server is running out of memory. Note that I did
> not alter the native configuration of Geronimo in any way. This is a
> stock M3 download, using JDK 1.4.2_05 on Windows XP SP2.
> It's my expectation that the app server would stay up and running
> indefinitely after redeploys of .war files. Especially this .war file
> since it merely contains a single welcome.jsp. I hope this info is
> helpful, and let me know what else you might need. I'll gladly send
> the script and .war file to others that might want to test this.
> Thanks,
> Seth
> My test script:
> $ cat over-and-over.sh
> while /bin/true; do
> java -jar bin/deployer.jar --user system --password manager deploy ../eclipse/wo
> rkspace/MinimalWebapp/build/minimaltest.war
> sleep 1
> wget -q -O - http://localhost:8080/minimaltest/welcome.jsp > /dev/null
> java -jar bin/deployer.jar --user system --password manager undeploy minimaltest
> sleep 1
> done
> Structure of minimaltest.war:
> $ jar tf ../eclipse/workspace/MinimalWebapp/build/minimaltest.war
> META-INF/
> META-INF/MANIFEST.MF
> WEB-INF/
> welcome.jsp
> WEB-INF/web.xml
> Contents of web.xml:
> $ cat ../eclipse/workspace/MinimalWebapp/web/WEB-INF/web.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/
> xml/ns/j2ee/web-app_2_4.xsd"
> version="2.4">
> <welcome-file-list>
> <welcome-file>welcome.jsp</welcome-file>
> </welcome-file-list>
> </web-app>
> So, as you can see, it's a very minimal webapp. It doesn't initialize
> anything, nor does it include any 3rd party jars or libs. It doesn't
> even load up any classes, and the welcome.jsp only says "Hello,
> world!"
> After 1434 deploy cycles, we receive this exception from the deploy client:
> ---------------------------------
> Deployment failed
> Server reports: null
> java.lang.IllegalStateException
> at org.apache.geronimo.kernel.Kernel.stopConfiguration(Kernel.java:437)
> at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at mx4j.server.ReflectionMBeanInvoker.invokeImpl(ReflectionMBeanInvoker.java:152)
> at mx4j.server.ReflectionMBeanInvoker.doInvoke(ReflectionMBeanInvoker.java:119)
> at mx4j.server.ReflectionMBeanInvoker.invoke(ReflectionMBeanInvoker.java:54)
> at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:235)
> at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
> at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
> at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
> at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
> at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:205)
> at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1079)
> at mx4j.remote.rmi.RMIConnectionInvoker.invoke(RMIConnectionInvoker.java:222)
> at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at mx4j.remote.rmi.RMIConnectionProxy.invoke(RMIConnectionProxy.java:36)
> at mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain(RMIConnectionSubjectInvoker.java:98)
> at mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000(RMIConnectionSubjectInvoker.java:32)
> at mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run(RMIConnectionSubjectInvoker.java:89)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
> at mx4j.remote.MX4JRemoteUtils.subjectInvoke(MX4JRemoteUtils.java:151)
> at mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke(RMIConnectionSubjectInvoker.java:85)
> at mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke(RMIConnectionSubjectInvoker.java:79)
> at $Proxy0.invoke(Unknown Source)
> at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:224)
> 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:324)
> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
> at sun.rmi.transport.Transport$1.run(Transport.java:148)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
> at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
> at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
> at java.lang.Thread.run(Thread.java:534)
> Caused by: org.apache.geronimo.kernel.config.InvalidConfigException:
> Invalid GBean configuration for geronimo.config:name="minimaltest"
> at org.apache.geronimo.kernel.Kernel.stopGBean(Kernel.java:389)
> at org.apache.geronimo.kernel.Kernel.stopConfiguration(Kernel.java:431)
> ... 39 more
> Caused by: java.lang.reflect.InvocationTargetException
> at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:146)
> at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:823)
> at org.apache.geronimo.gbean.jmx.RawInvoker.invoke(RawInvoker.java:89)
> at org.apache.geronimo.gbean.jmx.RawOperationInvoker.invoke(RawOperationInvoker.java:34)
> at org.apache.geronimo.gbean.jmx.CGLibMethodInterceptor.intercept(CGLibMethodInterceptor.java:112)
> at org.apache.geronimo.kernel.config.ConfigurationStore$$EnhancerByCGLIB$$45c69f36.updateConfiguration(<generated>)
> at org.apache.geronimo.kernel.config.Configuration.doStop(Configuration.java:269)
> at org.apache.geronimo.gbean.jmx.GBeanMBean.doStop(GBeanMBean.java:622)
> at org.apache.geronimo.gbean.jmx.AbstractManagedObject.attemptFullStop(AbstractManagedObject.java:583)
> at org.apache.geronimo.gbean.jmx.AbstractManagedObject.stop(AbstractManagedObject.java:396)
> at org.apache.geronimo.gbean.jmx.GBeanMBean$12.invoke(GBeanMBean.java:1048)
> at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:142)
> at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:844)
> at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:218)
> at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
> at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
> at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
> at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121)
> at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:205)
> at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1079)
> at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:288)
> at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:283)
> at org.apache.geronimo.kernel.Kernel.stopGBean(Kernel.java:385)
> ... 40 more
> Caused by: java.lang.OutOfMemoryError
> -----------------------------------
> And this exception block occurs in the server log:
> -----------------------------------
> 07:53:57,796 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/DeployerSystem which ca
> n not be loaded.
> 07:53:57,796 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/DebugConsole which can
> not be loaded.
> 07:53:57,796 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/ClientSystem which can
> not be loaded.
> 07:53:57,812 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/J2EEDeployer which can
> not be loaded.
> 07:53:57,812 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/Client which can not be
> loaded.
> 07:53:57,812 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/Secure which can not be
> loaded.
> 07:53:58,265 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/System which can not be
> loaded.
> 07:53:58,265 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/SystemJMS which can not
> be loaded.
> 07:53:58,281 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/Demo which can not be l
> oaded.
> 07:53:58,281 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID minimaltest which can not be loaded.
> 07:53:58,281 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/Server which can not be
> loaded.
> 07:53:58,281 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/DefaultDatabase which c
> an not be loaded.
> 07:53:58,281 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/SystemDatabase which ca
> n not be loaded.
> 07:53:58,281 ERROR [ConfigurationManagerImpl] [org.apache.geronimo.kernel.config
> .ConfigurationStore$$EnhancerByCGLIB$$45c69f36: geronimo.system:role=Configurati
> onStore,type=Local] defines configID org/apache/geronimo/ActiveMQServer which ca
> n not be loaded.
> 07:53:58,312 INFO [Configuration] Stopping configuration minimaltest
> 07:53:58,312 WARN [Configuration] Could not unregister child geronimo.server:J2
> EEApplication=null,J2EEServer=geronimo,j2eeType=WebModule,name=minimaltest
> javax.management.InstanceNotFoundException: MBeanServer cannot find MBean with O
> bjectName geronimo.server:J2EEApplication=null,J2EEServer=geronimo,j2eeType=WebM
> odule,name=minimaltest
> at mx4j.server.MX4JMBeanServer.findMBeanMetaData(MX4JMBeanServer.java:49
> 1)
> at mx4j.server.MX4JMBeanServer.unregisterMBean(MX4JMBeanServer.java:940)
> at org.apache.geronimo.kernel.Kernel.unloadGBean(Kernel.java:395)
> at org.apache.geronimo.kernel.config.Configuration.doStop(Configuration.
> java:254)
> at org.apache.geronimo.gbean.jmx.GBeanMBean.doStop(GBeanMBean.java:622)
> at org.apache.geronimo.gbean.jmx.AbstractManagedObject.attemptFullStop(A
> bstractManagedObject.java:583)
> at org.apache.geronimo.gbean.jmx.AbstractManagedObject.stop(AbstractMana
> gedObject.java:396)
> at org.apache.geronimo.gbean.jmx.GBeanMBean$12.invoke(GBeanMBean.java:10
> 48)
> at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOp
> eration.java:142)
> at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:844)
> at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerM
> BeanServerInterceptor.java:218)
> at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultM
> BeanServerInterceptor.java:121)
> at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(Securit
> yMBeanServerInterceptor.java:86)
> at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultM
> BeanServerInterceptor.java:121)
> at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultM
> BeanServerInterceptor.java:121)
> at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invo
> ke(ContextClassLoaderMBeanServerInterceptor.java:205)
> at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1079)
> at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:288)
> at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:283)
> at org.apache.geronimo.kernel.Kernel.stopGBean(Kernel.java:385)
> at org.apache.geronimo.kernel.Kernel.stopConfiguration(Kernel.java:431)
> at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source)
> ---------------------------------
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira