Failed web app deployment cannot be undeployed
----------------------------------------------

         Key: GERONIMO-1954
         URL: http://issues.apache.org/jira/browse/GERONIMO-1954
     Project: Geronimo
        Type: Bug
    Security: public (Regular issues) 
  Components: deployment  
    Versions: 1.1    
    Reporter: John Sisson
    Priority: Blocker
     Fix For: 1.1


Encountered the situation where deploying a web app in an ear where the web app 
has not been configured correctly you will get a deployment error, but the 
since deployment didn't complete, a config.ser file wasn't written to the 
repository, although other files for the configuration were written to the 
repository.

If you attempt to undeploy, you will get a "configId does not appear to be a 
the name of a module available on the selected server." error message.  This is 
due to undeploy processing  (see debug info below) calling listConfigurations() 
that relies upon config.ser being present.

Debugging notes .... 

#
# Initial deployment attempt of an ear that has an error during deployment
#

C:\test>geronimo-1.1-SNAPSHOT\bin\deploy --user system --password manager 
deploy myTest.ear myTestPlan.xml
Using GERONIMO_BASE:   C:\test\geronimo-1.1-SNAPSHOT
Using GERONIMO_HOME:   C:\test\geronimo-1.1-SNAPSHOT
Using GERONIMO_TMPDIR: C:\test\geronimo-1.1-SNAPSHOT\var\temp
Using JRE_HOME:        C:\j2sdk1.4.2_10
    Error: Unable to distribute myTest.ear: web.xml includes
    security elements but Geronimo deployment plan is not provided or
    does not contain <security-realm-name> element necessary to
    configure security accordingly.


Deployment creates a configuration dir in the repository..

System Thread [RMI TCP Connection(885)-172.21.35.100] (Suspended (entry into 
method createNewConfigurationDir in 
org.apache.geronimo.system.configuration.RepositoryConfigurationStore)) (out of 
synch)
    
org.apache.geronimo.system.configuration.RepositoryConfigurationStore.createNewConfigurationDir(org.apache.geronimo.kernel.repository.Artifact)
 line: 171 (out of synch)
    
org.apache.geronimo.system.configuration.RepositoryConfigurationStore$$FastClassByCGLIB$$968bf00c.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    <SNIP>
    
org.apache.geronimo.kernel.config.ConfigurationStore$$EnhancerByCGLIB$$7d844901.createNewConfigurationDir(org.apache.geronimo.kernel.repository.Artifact)
 line: not available
    
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(boolean,
 org.apache.geronimo.kernel.repository.Artifact, java.lang.Object, 
java.util.jar.JarFile, java.util.Collection, 
org.apache.geronimo.kernel.repository.ArtifactResolver, 
org.apache.geronimo.kernel.config.ConfigurationStore) line: 411
    
org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    <SNIP>
    
org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$ffe6c609.buildConfiguration(boolean,
 org.apache.geronimo.kernel.repository.Artifact, java.lang.Object, 
java.util.jar.JarFile, java.util.Collection, 
org.apache.geronimo.kernel.repository.ArtifactResolver, 
org.apache.geronimo.kernel.config.ConfigurationStore) line: not available
    org.apache.geronimo.deployment.Deployer.deploy(boolean, java.io.File, 
java.io.File, java.io.File, boolean, java.lang.String, java.lang.String, 
java.lang.String, java.lang.String, java.lang.String) line: 301
    org.apache.geronimo.deployment.Deployer.deploy(boolean, java.io.File, 
java.io.File) line: 120
    <RMI Call>

Files/dirs are added to the repository from the ear

System Thread [RMI TCP Connection(907)-172.21.35.100] (Suspended)
    org.apache.geronimo.deployment.CopyResourceContext.addFile(java.io.File, 
java.util.zip.ZipFile, java.util.zip.ZipEntry) line: 158
    org.apache.geronimo.deployment.CopyResourceContext.addFile(java.net.URI, 
java.util.zip.ZipFile, java.util.zip.ZipEntry) line: 132
    
org.apache.geronimo.j2ee.deployment.EARContext(org.apache.geronimo.deployment.DeploymentContext).addFile(java.net.URI,
 java.util.zip.ZipFile, java.util.zip.ZipEntry) line: 311
    
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(boolean,
 org.apache.geronimo.kernel.repository.Artifact, java.lang.Object, 
java.util.jar.JarFile, java.util.Collection, 
org.apache.geronimo.kernel.repository.ArtifactResolver, 
org.apache.geronimo.kernel.config.ConfigurationStore) line: 450
    
org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    <SNIP>

Tomcat Builder throws deployment exception leaving files previously added in 
repo, but no config.ser is in the repo.

System Thread [RMI TCP Connection(907)-172.21.35.100] (Suspended)
    
org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.initContext(org.apache.geronimo.j2ee.deployment.EARContext,
 org.apache.geronimo.j2ee.deployment.Module, java.lang.ClassLoader) line: 269
    
org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder$$FastClassByCGLIB$$6f85ec2c.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, 
java.lang.Object[]) line: 53
    
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, 
java.lang.Object[]) line: 38
    org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, 
java.lang.Object[]) line: 122
    org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(int, 
java.lang.Object[]) line: 816
    org.apache.geronimo.gbean.runtime.RawInvoker.invoke(int, 
java.lang.Object[]) line: 57
    
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(org.apache.geronimo.gbean.AbstractName,
 java.lang.Object[]) line: 35
    
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(java.lang.Object,
 java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy) 
line: 96
    
org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$f3f9bd97.initContext(org.apache.geronimo.j2ee.deployment.EARContext,
 org.apache.geronimo.j2ee.deployment.Module, java.lang.ClassLoader) line: not 
available
    
org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.initContext(org.apache.geronimo.j2ee.deployment.EARContext,
 org.apache.geronimo.j2ee.deployment.Module, java.lang.ClassLoader) line: 155
    
org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder$$FastClassByCGLIB$$d0c31844.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, 
java.lang.Object[]) line: 53
    
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, 
java.lang.Object[]) line: 38
    org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, 
java.lang.Object[]) line: 122
    org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(int, 
java.lang.Object[]) line: 816
    org.apache.geronimo.gbean.runtime.RawInvoker.invoke(int, 
java.lang.Object[]) line: 57
    
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(org.apache.geronimo.gbean.AbstractName,
 java.lang.Object[]) line: 35
    
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(java.lang.Object,
 java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy) 
line: 96
    
org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$f3f9bd97.initContext(org.apache.geronimo.j2ee.deployment.EARContext,
 org.apache.geronimo.j2ee.deployment.Module, java.lang.ClassLoader) line: not 
available
    
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(boolean,
 org.apache.geronimo.kernel.repository.Artifact, java.lang.Object, 
java.util.jar.JarFile, java.util.Collection, 
org.apache.geronimo.kernel.repository.ArtifactResolver, 
org.apache.geronimo.kernel.config.ConfigurationStore) line: 470
    
org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, 
java.lang.Object[]) line: 53
    
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, 
java.lang.Object[]) line: 38
    org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, 
java.lang.Object[]) line: 122
    org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(int, 
java.lang.Object[]) line: 816
    org.apache.geronimo.gbean.runtime.RawInvoker.invoke(int, 
java.lang.Object[]) line: 57
    
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(org.apache.geronimo.gbean.AbstractName,
 java.lang.Object[]) line: 35
    
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(java.lang.Object,
 java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy) 
line: 96
    
org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$ffe6c609.buildConfiguration(boolean,
 org.apache.geronimo.kernel.repository.Artifact, java.lang.Object, 
java.util.jar.JarFile, java.util.Collection, 
org.apache.geronimo.kernel.repository.ArtifactResolver, 
org.apache.geronimo.kernel.config.ConfigurationStore) line: not available
    org.apache.geronimo.deployment.Deployer.deploy(boolean, java.io.File, 
java.io.File, java.io.File, boolean, java.lang.String, java.lang.String, 
java.lang.String, java.lang.String, java.lang.String) line: 301
    org.apache.geronimo.deployment.Deployer.deploy(boolean, java.io.File, 
java.io.File) line: 120
    
org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(int, 
java.lang.Object, java.lang.Object[]) line: not available
    <SNIP>
 
#
# Attempt to deploy again (thinking that since the previous deploy failed you 
won't need to undeploy)
#

C:\test>geronimo-1.1-SNAPSHOT\bin\deploy --user system --password manager 
deploy myTest.ear myTestPlan.xml
Using GERONIMO_BASE:   C:\test\geronimo-1.1-SNAPSHOT
Using GERONIMO_HOME:   C:\test\geronimo-1.1-SNAPSHOT
Using GERONIMO_TMPDIR: C:\test\geronimo-1.1-SNAPSHOT\var\temp
Using JRE_HOME:        C:\j2sdk1.4.2_10
    Error: Unable to distribute myTest.ear:
    org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException:
    Configuration already exists:
    com.foo.bar/my-app/3.4/car

        Configuration already exists:
    com.foo.bar/my-app/3.4/car


Stack trace from deploy...    
    
System Thread [RMI TCP Connection(49)-172.21.35.100] (Suspended (exception 
org.apache.geronimo.kernel.config.ConfigurationAlreadyExistsException))
    
org.apache.geronimo.system.configuration.RepositoryConfigurationStore.createNewConfigurationDir(org.apache.geronimo.kernel.repository.Artifact)
 line: 176
    
org.apache.geronimo.system.configuration.RepositoryConfigurationStore$$FastClassByCGLIB$$968bf00c.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, 
java.lang.Object[]) line: 53
    
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, 
java.lang.Object[]) line: 38
    org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, 
java.lang.Object[]) line: 122
    org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(int, 
java.lang.Object[]) line: 816
    org.apache.geronimo.gbean.runtime.RawInvoker.invoke(int, 
java.lang.Object[]) line: 57
    
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(org.apache.geronimo.gbean.AbstractName,
 java.lang.Object[]) line: 35
    
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(java.lang.Object,
 java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy) 
line: 96
    
org.apache.geronimo.kernel.config.ConfigurationStore$$EnhancerByCGLIB$$7d844901.createNewConfigurationDir(org.apache.geronimo.kernel.repository.Artifact)
 line: not available
    
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(boolean,
 org.apache.geronimo.kernel.repository.Artifact, java.lang.Object, 
java.util.jar.JarFile, java.util.Collection, 
org.apache.geronimo.kernel.repository.ArtifactResolver, 
org.apache.geronimo.kernel.config.ConfigurationStore) line: 411
    
org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, 
java.lang.Object[]) line: 53
    <SNIP>

#
# Attempt to undeploy the failed deployment.  The listConfigurations() 
processing is looking for a config.ser file.
#

C:\test>geronimo-1.1-SNAPSHOT\bin\deploy --user system --password manager 
undeploy com.foo.bar/my-app/3.4/car
Using GERONIMO_BASE:   C:\test\geronimo-1.1-SNAPSHOT
Using GERONIMO_HOME:   C:\test\geronimo-1.1-SNAPSHOT
Using GERONIMO_TMPDIR: C:\test\geronimo-1.1-SNAPSHOT\var\temp
Using JRE_HOME:        C:\j2sdk1.4.2_10
    Error:
    com.foo.bar/my-app/3.4/car does
    not appear to be a the name of a module available on the selected
    server. Perhaps it has already been stopped or undeployed?  If
    you're trying to specify a TargetModuleID, use the syntax
    TargetName|ModuleName instead. If you're not sure what's running,
    try the list-modules command.
    
    
System Thread [RMI TCP Connection(854)-172.21.35.100] (Suspended (entry into 
method listConfigurations in 
org.apache.geronimo.system.configuration.RepositoryConfigurationStore)) (out of 
synch)
    
org.apache.geronimo.system.configuration.RepositoryConfigurationStore.listConfigurations()
 line: 359 (out of synch)
    
org.apache.geronimo.system.configuration.RepositoryConfigurationStore$$FastClassByCGLIB$$968bf00c.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    net.sf.cglib.reflect.FastMethod.invoke(java.lang.Object, 
java.lang.Object[]) line: 53
    
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(java.lang.Object, 
java.lang.Object[]) line: 38
    org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(java.lang.Object, 
java.lang.Object[]) line: 122
    org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(int, 
java.lang.Object[]) line: 816
    org.apache.geronimo.gbean.runtime.RawInvoker.invoke(int, 
java.lang.Object[]) line: 57
    
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(org.apache.geronimo.gbean.AbstractName,
 java.lang.Object[]) line: 35
    
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(java.lang.Object,
 java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy) 
line: 96
    
org.apache.geronimo.kernel.config.ConfigurationStore$$EnhancerByCGLIB$$7d844901.listConfigurations()
 line: not available
    
org.apache.geronimo.kernel.config.EditableKernelConfigurationManager(org.apache.geronimo.kernel.config.SimpleConfigurationManager).listConfigurations(org.apache.geronimo.kernel.config.ConfigurationStore)
 line: 168
    
org.apache.geronimo.kernel.config.EditableKernelConfigurationManager(org.apache.geronimo.kernel.config.SimpleConfigurationManager).listConfigurations(org.apache.geronimo.gbean.AbstractName)
 line: 161
    
org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(int,
 java.lang.Object, java.lang.Object[]) line: not available
    <SNIP - RMI Call>
    
org.apache.geronimo.system.jmx.JMXProxyMethodInterceptor.intercept(java.lang.Object,
 java.lang.reflect.Method, java.lang.Object[], net.sf.cglib.proxy.MethodProxy) 
line: 89
    
org.apache.geronimo.kernel.config.EditableConfigurationManager$$EnhancerByCGLIB$$bed46791.listConfigurations(org.apache.geronimo.gbean.AbstractName)
 line: not available
    
org.apache.geronimo.deployment.plugin.jmx.RemoteDeploymentManager(org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager).getModules(javax.enterprise.deploy.spi.Target[],
 org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager$ConfigFilter) 
line: 142
    
org.apache.geronimo.deployment.plugin.jmx.RemoteDeploymentManager(org.apache.geronimo.deployment.plugin.jmx.JMXDeploymentManager).getAvailableModules(javax.enterprise.deploy.shared.ModuleType,
 javax.enterprise.deploy.spi.Target[]) line: 108
    
org.apache.geronimo.deployment.cli.CommandUndeploy(org.apache.geronimo.deployment.cli.CommandStart).execute(java.io.PrintWriter,
 org.apache.geronimo.deployment.cli.ServerConnection, java.lang.String[]) line: 
60
    org.apache.geronimo.deployment.cli.DeployTool.execute(java.lang.String[]) 
line: 158
    org.apache.geronimo.deployment.cli.DeployTool.main(java.lang.String[]) 
line: 312
    


    
    

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

Reply via email to