You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Seth Ladd (JIRA)" <de...@geronimo.apache.org> on 2004/11/16 01:07:24 UTC

[jira] Created: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Repeated Deploys of WAR Generate OOM Exception
----------------------------------------------

         Key: GERONIMO-484
         URL: http://nagoya.apache.org/jira/browse/GERONIMO-484
     Project: Apache Geronimo
        Type: Bug
  Components: web  
    Versions: 1.0-M3    
 Environment: WinXP SP2, JDK 1.4.2_05
    Reporter: Seth Ladd
 Attachments: 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://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Aaron Mulder (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12319772 ] 

Aaron Mulder commented on GERONIMO-484:
---------------------------------------

Kevan, just want to say that I appreciate the effort you're putting in to this.  I think it's really valuable to identify and hunt down these kind of leaks.  Thanks!

> 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


[jira] Assigned: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "David Jencks (JIRA)" <de...@geronimo.apache.org>.
     [ 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Jeff Genender (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12320651 ] 

Jeff Genender commented on GERONIMO-484:
----------------------------------------

Applied Kevan's patch...thanks.  Please confirm this fixes any other leaks.  if so, please close and mark as fixed fo M5.

Sending        modules/jetty/src/java/org/apache/geronimo/jetty/JettyWebAppContext.java
Sending        modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java
Transmitting file data ..
Committed revision 264928.


> 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: LogFactoryRelease.txt, 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "David Jencks (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12318412 ] 

David Jencks commented on GERONIMO-484:
---------------------------------------

(3) should be fixed
Sending        modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/jmx/JMXDeploymentManager.java
Sending        modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/local/RedeployCommand.java
Sending        modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/local/StartCommand.java
Sending        modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/local/StopCommand.java
Sending        modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/local/UndeployCommand.java
Sending        modules/deployment/src/java/org/apache/geronimo/deployment/DeploymentContext.java
Sending        modules/kernel/src/java/org/apache/geronimo/kernel/basic/BasicProxyManager.java
Sending        modules/kernel/src/java/org/apache/geronimo/kernel/config/ConfigurationUtil.java
Sending        modules/kernel/src/java/org/apache/geronimo/kernel/jmx/JMXProxyManager.java
Sending        modules/system/src/java/org/apache/geronimo/system/main/CommandLine.java
Sending        modules/system/src/java/org/apache/geronimo/system/main/Daemon.java
Transmitting file data ...........
Committed revision 231345.

> 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Kevan Miller (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12320608 ] 

Kevan Miller commented on GERONIMO-484:
---------------------------------------

Assuming the doStop() changes are correct, the same changes should be added to doFail(), also...

> 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: LogFactoryRelease.txt, 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


[jira] Updated: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Kevan Miller (JIRA)" <de...@geronimo.apache.org>.
     [ http://issues.apache.org/jira/browse/GERONIMO-484?page=all ]

Kevan Miller updated GERONIMO-484:
----------------------------------

    Attachment: LogFactoryRelease.txt

OK, both A and B are Geronimo issues. They can be fixed by calling release as part of JettyWebAppContext.doStop() processing. Diff file is attached. Please verify that this is the appropriate location to perform this LogFactory cleanup...

I've tested under Jetty, but not Tomcat. However, proposed fix for Tomcat is attached. This whole scenario needs to be tested under Tomcat. 

There are a few potential leaks remaining. A sun.net.www.protocol.jar.URLJarFile is being "leaked" for every deploy/undeploy cycle. The instances are held in a static HashMap owned by sun.net.www.protocol.jar.JarFileFactory. Bug in the Sun implementation? I don't see any bug reports... Possible that this is a finite cache, but For 50 deploy/undeploy cycles, I see 50 URLJarFile's being leaked... I'll run a longer running test

> 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: LogFactoryRelease.txt, 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Kevan Miller (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12318548 ] 

Kevan Miller commented on GERONIMO-484:
---------------------------------------

Thanks David. 

Things are looking pretty good. Looks like the remaining o.a.g objects being leaked are caused by the JettyWebAppContexts problem described in (2). Once that's fixed, I'll rerun to see if any non-o.a.g objects are being leaked...

> 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "David Jencks (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12319013 ] 

David Jencks commented on GERONIMO-484:
---------------------------------------

New jetty version 5.1.5rc0 should fix the web-app memory leak.  Kevan, can you verify please?

Sending        etc/project.properties
Transmitting file data .
Committed revision 233164.

> 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Kevan Miller (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12318446 ] 

Kevan Miller commented on GERONIMO-484:
---------------------------------------

My mistake... My analysis of (2) was wrong. I saw an ArrayList owned by JettyServer growing with every deploy. I assumed that it was org.mortbay.http.HttpServer._listeners (the only "declared" ArrayList), and jumped to an invalid conclusion...  (I was further helped along in my mistake by the fact that  _listeners and the actual offending list share common members...)

The problem is in fact in jetty code. o.m.util.Container has an Object _components which is in fact an ArrayList which is managed by a LazyList class. The problem is that Container.removeComponent(Object) does everything except cause the removal of the object from the _components list.

I haven't compiled/tested the following, but something like the following ought to work...

    protected void removeComponent(Object o)
    {
        if (LazyList.contains(_components,o))
        {
+           _components = LazyList.remove(_components, o);
            ComponentEvent event = new ComponentEvent(this,o);
            if(log.isDebugEnabled())log.debug("remove component: "+o);
        
            for(int i=0;i<LazyList.size(_eventListeners);i++)
            {
                EventListener listener=(EventListener)LazyList.get(_eventListeners,i);
                if (listener instanceof ComponentListener)
                    ((ComponentListener)listener).removeComponent(event);
            }
        }
    }


> 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Kevan Miller (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12319534 ] 

Kevan Miller commented on GERONIMO-484:
---------------------------------------

Sorry for the delay -- I've been travelling. I'll verify later tonight or tomorrow.

In the meantime, I tracked down a few additional problems last week (I hacked org.mortbay.util.Container.java). I think there is another Jetty problem...

GeronimoLog objects are being kept alive in two different ways

(A) org.apache.geronimo.kernel.log.GeronimoLogFactory
  * static field  "instancesByClassLoader" is a HashMap of HashMaps used to manage the GeronimoLogs 
     which are generated for each ClassLoader.
  * the contained HashMaps are created and added to instancesByClassLoader (keyed by the ClassLoader), 
    but will never be removed from the HashMap. Thus the GeronimoLog's will never be GC'ed.
  * A comment indicates that this problem was foreseen "// todo this should use weak references"
  * I haven't (yet) looked at the solution for this. Seems like a WeakHashMap would be risky (either there
    already is a circularity or one could easily be accidentally added). This would mean that additional logic is 
    needed to free the HashMaps as they become unused...
     
(B) org.apache.commons.logging.LogFactory
  * static field "factories" is holding onto LogFactory objects
  * org.mortbay.jetty.servlet.ServletHandler.doStart() creates new GeronimoLog instances with the following call:
	_contextLog = LogFactory.getLog(getHttpContext().getHttpContextName());
  * however, there is no corresponding LogFactory.release(_contextLog) in ServletHandler.doStop()


> 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Kevan Miller (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12318363 ] 

Kevan Miller commented on GERONIMO-484:
---------------------------------------

I've reproduced Seth's problem on the trunk. 

I've identified a number of areas where allocated objects are never being GC'ed. I've run down 3 of the root causes. However, in all but one case, I'm not sure how to appropriately fix the problem -- it requires more Geronimo knowledge than I currently have. So, I'm going to document the causes. Hopefully, this can generate appropriate discussion for getting the other problems fixed. Please note that the following should fix a significant portion of the leaking objects, but unlikely to fix all... Best to fix these and see what remains.

1. JaasLoginCoordinator -- logout() is not invoked. This means that for each deploy or undeploy a JaasSecurityContext is added to the JaasLoginService.activeLogins Hashtable, but will never be removed. Also means that kernel.basic.BasicProxyManager.destroyProxy() will never be invoked. Why is logout() never being invoked?

2. JettyContainerImpl -- removeListener() is never called. This means that JettyWebAppContexts will stay alive (they are added to org.mortbay.jetty.Server._listeners during deployment) even after they are undeployed. When should removeListener() be called? Well, I take that back. removeListener() is called when you ctrl-C the server. ctrl-C drives JettyConnector.doStop(). Seems like we should be cleaning up a bit sooner than that...

3. DeploymentContext -- constructor causes a ConfigurationManager proxy to be created by calling ConfigurationUtil.getConfigurationManager(kernel). However, the proxy will never be destroyed. I fixed by adding a releaseConfigurationManager(Kernel, ConfigurationManager) method to ConfigurationUtil and the following update to DeploymentContext:

svn diff
Index: DeploymentContext.java
===================================================================
--- DeploymentContext.java	(revision 227253)
+++ DeploymentContext.java	(working copy)
@@ -104,7 +104,10 @@
                 loadedAncestors = configurationManager.loadRecursive(parentId);
             } catch (Exception e) {
                 throw new DeploymentException("Unable to load parents", e);
+            } finally {
+              ConfigurationUtil.releaseConfigurationManager(kernel, configurationManager);
             }

> 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
>      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


[jira] Updated: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Seth Ladd (JIRA)" <de...@geronimo.apache.org>.
     [ http://nagoya.apache.org/jira/browse/GERONIMO-484?page=history ]

Seth Ladd updated GERONIMO-484:
-------------------------------

    Attachment: over-and-over.sh

Including script used to test redeployment (over-and-over.sh)

> Repeated Deploys of WAR Generate OOM Exception
> ----------------------------------------------
>
>          Key: GERONIMO-484
>          URL: http://nagoya.apache.org/jira/browse/GERONIMO-484
>      Project: Apache Geronimo
>         Type: Bug
>   Components: web
>     Versions: 1.0-M3
>  Environment: WinXP SP2, JDK 1.4.2_05
>     Reporter: Seth Ladd
>  Attachments: 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://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Updated: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Seth Ladd (JIRA)" <de...@geronimo.apache.org>.
     [ http://nagoya.apache.org/jira/browse/GERONIMO-484?page=history ]

Seth Ladd updated GERONIMO-484:
-------------------------------

    Attachment: minimaltest.war

The webapp used in the over-and-over test.  Includes only web.xml and a welcome.jsp

> Repeated Deploys of WAR Generate OOM Exception
> ----------------------------------------------
>
>          Key: GERONIMO-484
>          URL: http://nagoya.apache.org/jira/browse/GERONIMO-484
>      Project: Apache Geronimo
>         Type: Bug
>   Components: web
>     Versions: 1.0-M3
>  Environment: WinXP SP2, JDK 1.4.2_05
>     Reporter: Seth Ladd
>  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://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Kevan Miller (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12319725 ] 

Kevan Miller commented on GERONIMO-484:
---------------------------------------

OK. I've verified that 1, 2, and 3 are fixed on the trunk. That leaves (A) and (B), described above. There are a number of java.*, sun.*, and com.sun.* objects being leaked. Everyone that I've looked at is being kept alive by A or B, but I've not made an exhaustive search...

I'll post (B) on jetty-discuss...

> 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "Kevan Miller (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12329466 ] 

Kevan Miller commented on GERONIMO-484:
---------------------------------------

I've verified that the above fixes are working. 

I've just run 1500 deploy/undeploy cycles with a max heap of 20 megs. Ran without a problem (I did note that the minimum heap has grown to over 13 megs -- I assume because of the console). However, things aren't perfect. Looks like 1 to 2 megs were lost during the run. I believe most of this has to do with the URLJarFiles mentioned previously. Seems to be an acknowledged Sun bug -- http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=4167874 (cast your vote... ;-). It's possible that URLConnection.connection.setDefaultUseCaches(false) could be used to avoid this problem -- it's not clear to me from the discussions on the Sun Bug database and I haven't run tests to confirm (I also don't know how turning off caching would impact current behavior -- it certainly could adversely impact performance).

Shall we close this one out and perform further tests on URLJarFile behavior?

> 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: LogFactoryRelease.txt, 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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "David Jencks (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12318409 ] 

David Jencks commented on GERONIMO-484:
---------------------------------------

wrt (2) I'm getting a little confused by your description.  add/removeListener is called for the Connectors, not the web apps.  So, it is entirely appropriate that removeListener only be called when the configuration containing the listener is shut down.  Normally there are only 2 or 3 listeners ever deployed in a server.  Are you seeing more listeners?  Are the web app contexts getting stored in the same list?  There's some code in doStop of JettyWebAppContext that is supposed to unregister the web app.  Is it not working or not executed?

> 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


[jira] Updated: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "David Jencks (JIRA)" <de...@geronimo.apache.org>.
     [ http://issues.apache.org/jira/browse/GERONIMO-484?page=all ]

David Jencks updated GERONIMO-484:
----------------------------------

    Fix Version: 1.0-M5
    Description: 
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)
---------------------------------

  was:
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)
---------------------------------


> 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
>      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


[jira] Commented: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "David Jencks (JIRA)" <de...@geronimo.apache.org>.
    [ http://issues.apache.org/jira/browse/GERONIMO-484?page=comments#action_12318449 ] 

David Jencks commented on GERONIMO-484:
---------------------------------------

(1) should be fixed, also I missed a couple updates for (3).  I will consult Greg about the jetty web app context problem.
Sending        modules/jmx-remoting/src/java/org/apache/geronimo/jmxremoting/Authenticator.java
Sending        modules/jmx-remoting/src/java/org/apache/geronimo/jmxremoting/JMXConnector.java
Sending        plugins/geronimo-packaging-plugin/src/java/org/apache/geronimo/plugin/packaging/PackageBuilder.java
Sending        plugins/maven-geronimo-plugin/src/java/org/apache/geronimo/deployment/mavenplugin/StartServer.java
Transmitting file data ....
Committed revision 231404.

> 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


[jira] Closed: (GERONIMO-484) Repeated Deploys of WAR Generate OOM Exception

Posted by "David Jencks (JIRA)" <de...@geronimo.apache.org>.
     [ http://issues.apache.org/jira/browse/GERONIMO-484?page=all ]
     
David Jencks closed GERONIMO-484:
---------------------------------

    Resolution: Cannot Reproduce

Closing per Kevan's comment.  Lets open new issues for new memory leaks :-)

> 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: LogFactoryRelease.txt, 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