Sorry; Paul and I chatted about this Friday but I didn't see this thread
so didn't comment here.
The problem is HAModClusterService is storing items in the
DistributedReplicantManager whose classes can get redeployed. When that
happens, items previously replicated from other nodes can no longer be
accessed. This is the first DRM usage that does this; all previous DRM
usages stored String or some class from server/all/lib. So... well,
pioneers get arrows in their backs.
A workaround would be to move the mod-cluster.jar from the
mod-cluster.sar and place it in the $JBOSS_HOME/common/lib directory.
A real solution is likely going to be something like:
HAModClusterService stores in the DRM a SimpleCachableMarshalledValue[1]
wrapping the real value. We then add a utility function
HAModClusterService calls to work with objects from the DRM/sanitize
them for use. It can catch any CCE, call toByteArray() on the marshalled
value, and then re-read. The CCE would be rare as this is not something
likely to be re-deployed.
[1]
https://jira.jboss.org/jira/browse/MODCLUSTER-88
I'll have to get our classloader-guru (aka Brian) to look at this one.
On Fri, 2009-07-31 at 15:54 +0200, Bela Ban wrote:
> When I touched mod-cluster.sar/META-INF/mod-cluster-jboss-beans.xml, I
> got the exception below.
>
> Can someone look into this ?
>
>
> 2009-07-31 09:52:40,084 INFO
> [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner)
> undeploy, ctxPath=/invoker
> 2009-07-31 09:52:40,168 INFO
> [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner)
> undeploy, ctxPath=/juddi
> 2009-07-31 09:52:40,170 INFO
> [org.apache.juddi.registry.RegistryServlet] (HDScanner) jUDDI Stopping:
> Cleaning up existing resources.
> 2009-07-31 09:52:40,172 INFO
> [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner)
> undeploy, ctxPath=/jbossws
> 2009-07-31 09:52:40,176 INFO
> [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner)
> undeploy, ctxPath=/web-console
> 2009-07-31 09:52:40,182 INFO
> [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner)
> undeploy, ctxPath=/admin-console
> 2009-07-31 09:52:40,186 INFO
> [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner)
> undeploy, ctxPath=/jmx-console
> 2009-07-31 09:52:40,225 INFO [org.apache.coyote.http11.Http11Protocol]
> (HDScanner) Pausing Coyote HTTP/1.1 on http-10.254.203.178-8080
> 2009-07-31 09:52:40,230 INFO [org.apache.coyote.http11.Http11Protocol]
> (HDScanner) Stopping Coyote HTTP/1.1 on http-10.254.203.178-8080
> 2009-07-31 09:52:40,231 INFO [org.apache.coyote.ajp.AjpProtocol]
> (HDScanner) Pausing Coyote AJP/1.3 on ajp-10.254.203.178-8009
> 2009-07-31 09:52:40,236 INFO [org.apache.coyote.ajp.AjpProtocol]
> (HDScanner) Stopping Coyote AJP/1.3 on ajp-10.254.203.178-8009
> 2009-07-31 09:52:40,292 INFO [org.apache.catalina.core.StandardService]
> (HDScanner) Stopping service jboss.web
> 2009-07-31 09:52:41,506 ERROR
> [org.jboss.kernel.plugins.dependency.AbstractKernelController]
> (HDScanner) Error installing to Start: name=HAModClusterService
> state=Create mode=On Demand requiredState=Installed
> java.lang.ClassCastException:
> org.jboss.modcluster.ha.ModClusterServiceDRMEntry cannot be cast to
> org.jboss.modcluster.ha.ModClusterServiceDRMEntry
> at
>
org.jboss.modcluster.ha.HAModClusterService.narrowCandidateList(HAModClusterService.java:496)
> at
>
org.jboss.modcluster.ha.HAModClusterService.getElectionCandidates(HAModClusterService.java:477)
> at
> org.jboss.ha.framework.server.HASingletonImpl.election(HASingletonImpl.java:206)
> at
> org.jboss.ha.framework.server.HASingletonImpl.elected(HASingletonImpl.java:199)
> at
>
org.jboss.ha.framework.server.HASingletonImpl.partitionTopologyChanged(HASingletonImpl.java:162)
> at
>
org.jboss.ha.framework.server.HASingletonImpl.registerDRMListener(HASingletonImpl.java:124)
> at
> org.jboss.ha.framework.server.HAServiceImpl.start(HAServiceImpl.java:180)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:616)
> at
>
org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59)
> at
>
org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:150)
> at
>
org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
> at
>
org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:241)
> at
>
org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
> at
>
org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:109)
> at
>
org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:70)
> at
>
org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:221)
> at
>
org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
> at
>
org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
> at
>
org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
> at
>
org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
> at
>
org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
> at
>
org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
> at
>
org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
> at
>
org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
> at
>
org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
> at
>
org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
> at
> org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at
> org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at
> org.jboss.system.ServiceController.doChange(ServiceController.java:688)
> at
> org.jboss.system.ServiceController.start(ServiceController.java:460)
> at
>
org.jboss.system.microcontainer.jmx.ServiceControllerStartStopLifecycleCallback.install(ServiceControllerStartStopLifecycleCallback.java:44)
> at sun.reflect.GeneratedMethodAccessor252.invoke(Unknown Source)
> at
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:616)
> at
>
org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59)
> at
>
org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:150)
> at
>
org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
> at
> org.jboss.beans.info.plugins.AbstractBeanInfo.invoke(AbstractBeanInfo.java:300)
> at
>
org.jboss.kernel.plugins.dependency.AbstractKernelControllerContext.invoke(AbstractKernelControllerContext.java:286)
> at
>
org.jboss.dependency.plugins.AbstractLifecycleCallbackItem.install(AbstractLifecycleCallbackItem.java:87)
> at
>
org.jboss.dependency.plugins.AbstractController.handleLifecycleCallbacks(AbstractController.java:1568)
> at
>
org.jboss.dependency.plugins.AbstractController.handleInstallLifecycleCallbacks(AbstractController.java:1533)
> at
>
org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:943)
> at
>
org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
> at
>
org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
> at
> org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at
> org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at
> org.jboss.system.ServiceController.doChange(ServiceController.java:688)
> at
> org.jboss.system.ServiceController.start(ServiceController.java:460)
> at
>
org.jboss.system.microcontainer.jmx.ServiceControllerStartStopLifecycleCallback.install(ServiceControllerStartStopLifecycleCallback.java:44)
> at sun.reflect.GeneratedMethodAccessor252.invoke(Unknown Source)
> at
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:616)
> at
>
org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59)
> at
>
org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:150)
> at
>
org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
> at
> org.jboss.beans.info.plugins.AbstractBeanInfo.invoke(AbstractBeanInfo.java:300)
> at
>
org.jboss.kernel.plugins.dependency.AbstractKernelControllerContext.invoke(AbstractKernelControllerContext.java:286)
> at
>
org.jboss.dependency.plugins.AbstractLifecycleCallbackItem.install(AbstractLifecycleCallbackItem.java:87)
> at
>
org.jboss.dependency.plugins.AbstractController.handleLifecycleCallbacks(AbstractController.java:1568)
> at
>
org.jboss.dependency.plugins.AbstractController.handleInstallLifecycleCallbacks(AbstractController.java:1533)
> at
>
org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:943)
> at
>
org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
> at
>
org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
> at
> org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:774)
> at
> org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540)
> at
>
org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:121)
> at
>
org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:51)
> at
>
org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
> at
>
org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
> at
>
org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
> at
>
org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
> at
>
org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
> at
>
org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
> at
> org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
> at
>
org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
> at
>
org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
> at
>
org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
> at
>
org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
> at
>
org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
> at
> org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
> at
> org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
> at
> org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
> at
> org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
> at
>
org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
> at
> org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)
> at
> org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
> at
>
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:165)
> at
>
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:636)
> 2009-07-31 09:52:41,530 WARN
> [org.jboss.system.server.profileservice.hotdeploy.HDScanner] (HDScanner)
> Failed to process changes
> org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of
> incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):
>
> DEPLOYMENTS IN ERROR:
> Deployment "HAModClusterService" is in error due to the following
> reason(s): java.lang.ClassCastException:
> org.jboss.modcluster.ha.ModClusterServiceDRMEntry cannot be cast to
> org.jboss.modcluster.ha.ModClusterServiceDRMEntry
>
> at
>
org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:993)
> at
>
org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:939)
> at
>
org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:873)
> at
>
org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:128)
> at
> org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:369)
> at
> org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
> at
>
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:165)
> at
>
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:636)
>
_______________________________________________
mod_cluster-dev mailing list
mod_cluster-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/mod_cluster-dev