[ http://issues.apache.org/jira/browse/GERONIMO-1954?page=all ]
John Sisson updated GERONIMO-1954:
----------------------------------
Environment: Windows XP
> 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
> Environment: Windows XP
> Reporter: John Sisson
> Priority: Blocker
> Fix For: 1.1
>
> Encountered the situation where if you get a deployment error for a web app
> in an ear where the ear also has an ejb jar in it, the files written to the
> repository for the ear are not cleaned up due to a file lock on the ejb jar
> file in the repository.
> The EARConfigBuilder attempted to delete the files by calling
> DeploymentUtil.recursiveDelete(..) but the cleanup didn't work due to the ejb
> file being in use (probably by a classloader created during the
> OpenEJBModuleBuilder's initContext(..) processing.
> 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.
> If you attempt to deploy again you get a ConfigurationAlreadyExists exception
> due to the call to RepositoryConfigurationStore.createNewConfigurationDir(..)
> checking that the directory does not already exist.
> 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