Details
-
Type:
Bug
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 5.0.0
-
Fix Version/s: 5.0.1
-
Component/s: Topology/network
-
Security Level: Public
-
- Description:
-
Hide
When looping about attachment and detachment of a container, a out of memory can occurs because no more memory is available into the PermGen space.
It is due to a memory leak on container attachment and container detachment, following objects are not freed:- shared library classloaders,
- component classloaders,
- component bootstrap thread,
- component installer.
ShowWhen looping about attachment and detachment of a container, a out of memory can occurs because no more memory is available into the PermGen space. It is due to a memory leak on container attachment and container detachment, following objects are not freed:- shared library classloaders,
- component classloaders,
- component bootstrap thread,
- component installer.
-
- Environment:
- -
Attachments
-
- build-concurrent-attachments-detachments.xml
- (84 kB)
- Christophe DENEUX
- Wed, 18 Nov 2015 - 12:16:06 +0100
Issue Links
| Depends | ||||
|---|---|---|---|---|
|
||||
Activity
- All
- Comments
- Work Log
- History
- Activity
- Workflow Diagram
- Transitions
So, the problem is caused by the fact that components' objects are freed before the registry is changed, and then recovered after so that their endpoints can be registered again.
Here is a solution not very complex that should work if I understood well the requirements:
- At the beginning of the attachment, EndpointRegistry.removeAllLocalEndpoints() is called
-> we should make it return the list of endpoints removed - At the end of the attachment, we should simply reinject these endpoints in the new registry.
I can take care of it.
- At the beginning of the attachment, EndpointRegistry.removeAllLocalEndpoints() is called -> we should make it return the list of endpoints removed
- At the end of the attachment, we should simply reinject these endpoints in the new registry.
An integration test to check this problem
Yes, your proposal seems good. I joined to you the integration test. See target: concurrent-attachments-detachments
Is that meant to be used in place of the current build.xml for launcher-moving-new-container-to-an-existing-topology? or something else?
I'm missing invokes.target.containers.fails.xml and maybe other things… don't you want to commit it?
Thanks
Integration test committed with svn#38727
Ok, I committed something, the test doesn't pass for me, but it's not because of this matter I think… not sure…
Could you try on your side?
With your fix, I have the following error. Have you the same ? As you, I don't understand the link with your fix, but I think it's linked:
[echo] *** 2) Attach the stand-alone containers into the target domain, using Petals CLI from both containers of the target domain ***
...
[echo] Checking that, from the containers attached, invocations of services located on containers of the target domain succeed ...
[java] java.rmi.NotBoundException: RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-1
[java] at sun.rmi.registry.RegistryImpl.lookup(RegistryImpl.java:137)
[java] at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
[java] at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:409)
[java] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
[java] at sun.rmi.transport.Transport$2.run(Transport.java:202)
[java] at sun.rmi.transport.Transport$2.run(Transport.java:199)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at sun.rmi.transport.Transport.serviceCall(Transport.java:198)
[java] at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681)
[java] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[java] at java.lang.Thread.run(Thread.java:745)
[java] at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)
[java] at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)
[java] at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:378)
[java] at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
[java] at org.objectweb.petals.tools.rmi.client.ComponentContextLocator.<init>(ComponentContextLocator.java:64)
[java] at com.ebmwebsoucing.integration.client.rmi.RMIClient.main(RMIClient.java:235)
[java] Java Result: 255
[echo] *** 2) Attach the stand-alone containers into the target domain, using Petals CLI from both containers of the target domain ***
...
[echo] Checking that, from the containers attached, invocations of services located on containers of the target domain succeed ...
[java] java.rmi.NotBoundException: RMIComponentContext_CLI_moving_new_container_to_an_existing_topology_initial-container-1
[java] at sun.rmi.registry.RegistryImpl.lookup(RegistryImpl.java:137)
[java] at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
[java] at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:409)
[java] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
[java] at sun.rmi.transport.Transport$2.run(Transport.java:202)
[java] at sun.rmi.transport.Transport$2.run(Transport.java:199)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at sun.rmi.transport.Transport.serviceCall(Transport.java:198)
[java] at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681)
[java] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[java] at java.lang.Thread.run(Thread.java:745)
[java] at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)
[java] at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)
[java] at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:378)
[java] at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
[java] at org.objectweb.petals.tools.rmi.client.ComponentContextLocator.<init>(ComponentContextLocator.java:64)
[java] at com.ebmwebsoucing.integration.client.rmi.RMIClient.main(RMIClient.java:235)
[java] Java Result: 255
Checkinig log files, I can see:
initial-container-1 2015/11/19 09:19:21,095 GMT+0100 INFO [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Attaching the current container to the domain 'Target-PEtALS' using the container 'target-container-0'
initial-container-1 2015/11/19 09:19:21,300 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.checkIfAttachmentIsPossible() Target topology maps: [{user=petals, host=localhost, jmxRMIPort=7701, password=petals, state=STARTED, transportTCPPort=7801, containerDescription=description of the container 1, domainName=Target-PEtALS, type=container, containerName=target-container-1}, {user=petals, host=localhost, jmxRMIPort=7700, password=petals, state=STARTED, transportTCPPort=7800, containerDescription=description of the container 0, domainName=Target-PEtALS, type=container, containerName=target-container-0}, {org.ow2.petals.microkernel.registry.overlay.RegistryOverlayImpl.group-password=target-s3cr3t, jndiProviderUrl=, org.ow2.petals.microkernel.registry.overlay.RegistryOverlayImpl.group-name=target-registry-overlay, domainName=Target-PEtALS, type=domain, jndiSecurityPrincipal=, domainDescription=A sample domain configuration: target domain, registryImplementation=, jndiFactory=, jndiPoolSize=, jndiBatchSize=, domainMode=dynamic, jndiSecurityCredentials=, org.ow2.petals.microkernel.registry.overlay.RegistryOverlayImpl.address.0=localhost:7910}]
initial-container-1 2015/11/19 09:19:21,349 GMT+0100 CONFIG [Petals.Communication.TopologyService] : TopologyServiceImpl.checkIfAttachmentIsPossible() New container host IP address: 192.168.1.100
initial-container-1 2015/11/19 09:19:21,350 GMT+0100 FINEST [Petals.System.Registry] : -START-RegistryOverlayImpl.removeAllLocalEndpoints()
initial-container-1 2015/11/19 09:19:21,417 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Stopping messaging subsystem...
initial-container-1 2015/11/19 09:19:21,418 GMT+0100 INFO [Petals.Server] : Stopping messaging sub-system ...
initial-container-1 2015/11/19 09:19:21,419 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Stop Service Unit 'su-POJO-HelloService-5.0.0-SNAPSHOT'
initial-container-1 2015/11/19 09:19:21,422 GMT+0100 WARNING [Petals.Container.Components.petals-se-pojo] : Error during cleanup of Service unit 'su-POJO-HelloService-5.0.0-SNAPSHOT'
javax.jbi.JBIException: org.ow2.petals.microkernel.api.jbi.messaging.registry.EndpointDoesNotExistsException: The endpoint 'edpt-366fe6d0-8e96-11e5-b447-0090f5fbc4a1' for service '{http://petals.ow2.org/}HelloService' does not exist.
at org.ow2.petals.microkernel.jbi.component.context.ComponentContextImpl.deactivateEndpoint(ComponentContextImpl.java:231)
at org.ow2.petals.component.framework.su.AbstractServiceUnitManager.deactivateEndpoints(AbstractServiceUnitManager.java:540)
at org.ow2.petals.component.framework.su.AbstractServiceUnitManager.stop(AbstractServiceUnitManager.java:556)
at org.ow2.petals.microkernel.api.container.ServiceUnitLifeCycle.stop(ServiceUnitLifeCycle.java:171)
at org.ow2.petals.microkernel.container.lifecycle.ServiceAssemblyLifeCycleImpl.doStop(ServiceAssemblyLifeCycleImpl.java:148)
at org.ow2.petals.microkernel.container.lifecycle.ServiceAssemblyLifeCycleImpl.stopComponentLifeCycle(ServiceAssemblyLifeCycleImpl.java:219)
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:606)
at juliac.generated.LifeCycleControllerImpl.invoke(LifeCycleControllerImpl.java:269)
at juliac.generated.LifeCycleControllerImpl.setFcContentState(LifeCycleControllerImpl.java:215)
at juliac.generated.LifeCycleControllerImpl.setFcStopped(LifeCycleControllerImpl.java:116)
at org.objectweb.fractal.julia.control.lifecycle.LifeCycleCoordinatorFcItf.setFcStopped(LifeCycleCoordinatorFcItf.java:34)
at juliac.generated.LifeCycleControllerImpl.stopFc(LifeCycleControllerImpl.java:313)
at juliac.generated.LifeCycleControllerImpl.stopFc(LifeCycleControllerImpl.java:251)
at org.objectweb.fractal.julia.control.lifecycle.LifeCycleCoordinatorFcItf.stopFc(LifeCycleCoordinatorFcItf.java:76)
at org.ow2.petals.microkernel.api.server.FractalHelper.stopComponent(FractalHelper.java:435)
at org.ow2.petals.microkernel.container.ContainerControllerImpl.stopAllJbiArtefacts(ContainerControllerImpl.java:560)
at org.ow2.petals.microkernel.container.ContainerControllerInterceptorLC1a2eb783.stopAllJbiArtefacts(ContainerControllerInterceptorLC1a2eb783.java:274)
at org.ow2.petals.microkernel.container.ContainerControllerFcItf.stopAllJbiArtefacts(ContainerControllerFcItf.java:87)
at org.ow2.petals.microkernel.server.PetalsCompositeControllerImpl.stopJbiArtefacts(PetalsCompositeControllerImpl.java:1156)
at org.ow2.petals.microkernel.server.PetalsCompositeControllerImpl.stopMessagingSubsystem(PetalsCompositeControllerImpl.java:1208)
at org.ow2.petals.microkernel.server.PetalsCompositeControllerInterceptorLC1a2eb783.stopMessagingSubsystem(PetalsCompositeControllerInterceptorLC1a2eb783.java:338)
at org.ow2.petals.microkernel.server.PetalsCompositeControllerFcItf.stopMessagingSubsystem(PetalsCompositeControllerFcItf.java:99)
at org.ow2.petals.microkernel.communication.topology.TopologyServiceImpl.attachContainerTo(TopologyServiceImpl.java:724)
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:606)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
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:606)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1249)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1243)
at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1081)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:221)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:84)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:203)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1043)
at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1491)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1332)
at java.security.AccessController.doPrivileged(Native Method)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1431)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:852)
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:606)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at sun.rmi.transport.Transport$2.run(Transport.java:202)
at sun.rmi.transport.Transport$2.run(Transport.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:198)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.ow2.petals.microkernel.api.jbi.messaging.registry.EndpointDoesNotExistsException: The endpoint 'edpt-366fe6d0-8e96-11e5-b447-0090f5fbc4a1' for service '{http://petals.ow2.org/}HelloService' does not exist.
at org.ow2.petals.microkernel.registry.overlay.RegistryOverlayImpl.deactivateEndpoint(RegistryOverlayImpl.java:438)
at org.ow2.petals.microkernel.api.jbi.messaging.registry.EndpointRegistryInterceptorLC1a2eb783.deactivateEndpoint(EndpointRegistryInterceptorLC1a2eb783.java:305)
at org.ow2.petals.microkernel.api.jbi.messaging.registry.EndpointRegistryFcItf.deactivateEndpoint(EndpointRegistryFcItf.java:92)
at org.ow2.petals.microkernel.jbi.component.context.ComponentContextImpl.deactivateEndpoint(ComponentContextImpl.java:228)
... 73 more
initial-container-1 2015/11/19 09:19:21,425 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Shut down Service Unit 'su-POJO-HelloService-5.0.0-SNAPSHOT'
initial-container-1 2015/11/19 09:19:21,426 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Stop component...
initial-container-1 2015/11/19 09:19:21,427 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Component stopped
initial-container-1 2015/11/19 09:19:21,428 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Shut down component...
initial-container-1 2015/11/19 09:19:21,429 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Component shut down
initial-container-1 2015/11/19 09:19:21,444 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Stop component...
initial-container-1 2015/11/19 09:19:21,447 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Component stopped
initial-container-1 2015/11/19 09:19:21,448 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Shut down component...
initial-container-1 2015/11/19 09:19:21,449 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Component shut down
initial-container-1 2015/11/19 09:19:21,532 GMT+0100 INFO [Petals.Transporter.NioTransportProtocol.NioServerAgent] : The NIO Server agent is stopped.
initial-container-1 2015/11/19 09:19:21,537 GMT+0100 INFO [Petals.Server] : Messaging sub-system stopped
Endpoints must be unregistered after to have stop the messaging sub-system.
initial-container-1 2015/11/19 09:19:21,095 GMT+0100 INFO [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Attaching the current container to the domain 'Target-PEtALS' using the container 'target-container-0'
initial-container-1 2015/11/19 09:19:21,300 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.checkIfAttachmentIsPossible() Target topology maps: [{user=petals, host=localhost, jmxRMIPort=7701, password=petals, state=STARTED, transportTCPPort=7801, containerDescription=description of the container 1, domainName=Target-PEtALS, type=container, containerName=target-container-1}, {user=petals, host=localhost, jmxRMIPort=7700, password=petals, state=STARTED, transportTCPPort=7800, containerDescription=description of the container 0, domainName=Target-PEtALS, type=container, containerName=target-container-0}, {org.ow2.petals.microkernel.registry.overlay.RegistryOverlayImpl.group-password=target-s3cr3t, jndiProviderUrl=, org.ow2.petals.microkernel.registry.overlay.RegistryOverlayImpl.group-name=target-registry-overlay, domainName=Target-PEtALS, type=domain, jndiSecurityPrincipal=, domainDescription=A sample domain configuration: target domain, registryImplementation=, jndiFactory=, jndiPoolSize=, jndiBatchSize=, domainMode=dynamic, jndiSecurityCredentials=, org.ow2.petals.microkernel.registry.overlay.RegistryOverlayImpl.address.0=localhost:7910}]
initial-container-1 2015/11/19 09:19:21,349 GMT+0100 CONFIG [Petals.Communication.TopologyService] : TopologyServiceImpl.checkIfAttachmentIsPossible() New container host IP address: 192.168.1.100
initial-container-1 2015/11/19 09:19:21,350 GMT+0100 FINEST [Petals.System.Registry] : -START-RegistryOverlayImpl.removeAllLocalEndpoints()
initial-container-1 2015/11/19 09:19:21,417 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Stopping messaging subsystem...
initial-container-1 2015/11/19 09:19:21,418 GMT+0100 INFO [Petals.Server] : Stopping messaging sub-system ...
initial-container-1 2015/11/19 09:19:21,419 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Stop Service Unit 'su-POJO-HelloService-5.0.0-SNAPSHOT'
initial-container-1 2015/11/19 09:19:21,422 GMT+0100 WARNING [Petals.Container.Components.petals-se-pojo] : Error during cleanup of Service unit 'su-POJO-HelloService-5.0.0-SNAPSHOT'
javax.jbi.JBIException: org.ow2.petals.microkernel.api.jbi.messaging.registry.EndpointDoesNotExistsException: The endpoint 'edpt-366fe6d0-8e96-11e5-b447-0090f5fbc4a1' for service '{http://petals.ow2.org/}HelloService' does not exist.
at org.ow2.petals.microkernel.jbi.component.context.ComponentContextImpl.deactivateEndpoint(ComponentContextImpl.java:231)
at org.ow2.petals.component.framework.su.AbstractServiceUnitManager.deactivateEndpoints(AbstractServiceUnitManager.java:540)
at org.ow2.petals.component.framework.su.AbstractServiceUnitManager.stop(AbstractServiceUnitManager.java:556)
at org.ow2.petals.microkernel.api.container.ServiceUnitLifeCycle.stop(ServiceUnitLifeCycle.java:171)
at org.ow2.petals.microkernel.container.lifecycle.ServiceAssemblyLifeCycleImpl.doStop(ServiceAssemblyLifeCycleImpl.java:148)
at org.ow2.petals.microkernel.container.lifecycle.ServiceAssemblyLifeCycleImpl.stopComponentLifeCycle(ServiceAssemblyLifeCycleImpl.java:219)
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:606)
at juliac.generated.LifeCycleControllerImpl.invoke(LifeCycleControllerImpl.java:269)
at juliac.generated.LifeCycleControllerImpl.setFcContentState(LifeCycleControllerImpl.java:215)
at juliac.generated.LifeCycleControllerImpl.setFcStopped(LifeCycleControllerImpl.java:116)
at org.objectweb.fractal.julia.control.lifecycle.LifeCycleCoordinatorFcItf.setFcStopped(LifeCycleCoordinatorFcItf.java:34)
at juliac.generated.LifeCycleControllerImpl.stopFc(LifeCycleControllerImpl.java:313)
at juliac.generated.LifeCycleControllerImpl.stopFc(LifeCycleControllerImpl.java:251)
at org.objectweb.fractal.julia.control.lifecycle.LifeCycleCoordinatorFcItf.stopFc(LifeCycleCoordinatorFcItf.java:76)
at org.ow2.petals.microkernel.api.server.FractalHelper.stopComponent(FractalHelper.java:435)
at org.ow2.petals.microkernel.container.ContainerControllerImpl.stopAllJbiArtefacts(ContainerControllerImpl.java:560)
at org.ow2.petals.microkernel.container.ContainerControllerInterceptorLC1a2eb783.stopAllJbiArtefacts(ContainerControllerInterceptorLC1a2eb783.java:274)
at org.ow2.petals.microkernel.container.ContainerControllerFcItf.stopAllJbiArtefacts(ContainerControllerFcItf.java:87)
at org.ow2.petals.microkernel.server.PetalsCompositeControllerImpl.stopJbiArtefacts(PetalsCompositeControllerImpl.java:1156)
at org.ow2.petals.microkernel.server.PetalsCompositeControllerImpl.stopMessagingSubsystem(PetalsCompositeControllerImpl.java:1208)
at org.ow2.petals.microkernel.server.PetalsCompositeControllerInterceptorLC1a2eb783.stopMessagingSubsystem(PetalsCompositeControllerInterceptorLC1a2eb783.java:338)
at org.ow2.petals.microkernel.server.PetalsCompositeControllerFcItf.stopMessagingSubsystem(PetalsCompositeControllerFcItf.java:99)
at org.ow2.petals.microkernel.communication.topology.TopologyServiceImpl.attachContainerTo(TopologyServiceImpl.java:724)
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:606)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
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:606)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1249)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1243)
at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1081)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:221)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:84)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:203)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1043)
at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1491)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1332)
at java.security.AccessController.doPrivileged(Native Method)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1431)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:852)
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:606)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at sun.rmi.transport.Transport$2.run(Transport.java:202)
at sun.rmi.transport.Transport$2.run(Transport.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:198)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.ow2.petals.microkernel.api.jbi.messaging.registry.EndpointDoesNotExistsException: The endpoint 'edpt-366fe6d0-8e96-11e5-b447-0090f5fbc4a1' for service '{http://petals.ow2.org/}HelloService' does not exist.
at org.ow2.petals.microkernel.registry.overlay.RegistryOverlayImpl.deactivateEndpoint(RegistryOverlayImpl.java:438)
at org.ow2.petals.microkernel.api.jbi.messaging.registry.EndpointRegistryInterceptorLC1a2eb783.deactivateEndpoint(EndpointRegistryInterceptorLC1a2eb783.java:305)
at org.ow2.petals.microkernel.api.jbi.messaging.registry.EndpointRegistryFcItf.deactivateEndpoint(EndpointRegistryFcItf.java:92)
at org.ow2.petals.microkernel.jbi.component.context.ComponentContextImpl.deactivateEndpoint(ComponentContextImpl.java:228)
... 73 more
initial-container-1 2015/11/19 09:19:21,425 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Shut down Service Unit 'su-POJO-HelloService-5.0.0-SNAPSHOT'
initial-container-1 2015/11/19 09:19:21,426 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Stop component...
initial-container-1 2015/11/19 09:19:21,427 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Component stopped
initial-container-1 2015/11/19 09:19:21,428 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Shut down component...
initial-container-1 2015/11/19 09:19:21,429 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Component shut down
initial-container-1 2015/11/19 09:19:21,444 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Stop component...
initial-container-1 2015/11/19 09:19:21,447 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Component stopped
initial-container-1 2015/11/19 09:19:21,448 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Shut down component...
initial-container-1 2015/11/19 09:19:21,449 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Component shut down
initial-container-1 2015/11/19 09:19:21,532 GMT+0100 INFO [Petals.Transporter.NioTransportProtocol.NioServerAgent] : The NIO Server agent is stopped.
initial-container-1 2015/11/19 09:19:21,537 GMT+0100 INFO [Petals.Server] : Messaging sub-system stopped
Ok, with the latest commit that fixes that, the only error I get is this kind in several of the containers:
initial-container-2 2015/11/19 09:41:21,119 GMT+0100 WARNING [Petals.System.Registry] : An error happened while adding a container detected as new to the domain org.ow2.petals.microkernel.api.configuration.exception.ContainerAlreadyExistException: The container 'initial-container-0' already exists at org.ow2.petals.microkernel.configuration.ConfigurationServiceImpl.addContainerConfiguration(ConfigurationServiceImpl.java:179) at org.ow2.petals.microkernel.api.configuration.ConfigurationServiceInterceptorLC1a2eb783.addContainerConfiguration(ConfigurationServiceInterceptorLC1a2eb783.java:443) at org.ow2.petals.microkernel.api.configuration.ConfigurationServiceFcItf.addContainerConfiguration(ConfigurationServiceFcItf.java:126) at org.ow2.petals.microkernel.registry.overlay.DynamicTopologyListener.entryUpdated(DynamicTopologyListener.java:150) at com.hazelcast.map.impl.MapListenerAdaptors$4$1.onEvent(MapListenerAdaptors.java:125) at com.hazelcast.map.impl.InternalMapListenerAdapter.onEvent(InternalMapListenerAdapter.java:51) at com.hazelcast.client.proxy.ClientMapProxy$ClientMapEventHandler.handle(ClientMapProxy.java:1181) at com.hazelcast.client.proxy.ClientMapProxy$ClientMapEventHandler.handle(ClientMapProxy.java:1168) at com.hazelcast.client.spi.impl.ClientListenerServiceImpl$ClientEventProcessor.handleEvent(ClientListenerServiceImpl.java:176) at com.hazelcast.client.spi.impl.ClientListenerServiceImpl$ClientEventProcessor.run(ClientListenerServiceImpl.java:166) at com.hazelcast.util.executor.StripedExecutor$Worker.process(StripedExecutor.java:190) at com.hazelcast.util.executor.StripedExecutor$Worker.run(StripedExecutor.java:174)
initial-container-2 2015/11/19 09:41:21,119 GMT+0100 WARNING [Petals.System.Registry] : An error happened while adding a container detected as new to the domain org.ow2.petals.microkernel.api.configuration.exception.ContainerAlreadyExistException: The container 'initial-container-0' already exists at org.ow2.petals.microkernel.configuration.ConfigurationServiceImpl.addContainerConfiguration(ConfigurationServiceImpl.java:179) at org.ow2.petals.microkernel.api.configuration.ConfigurationServiceInterceptorLC1a2eb783.addContainerConfiguration(ConfigurationServiceInterceptorLC1a2eb783.java:443) at org.ow2.petals.microkernel.api.configuration.ConfigurationServiceFcItf.addContainerConfiguration(ConfigurationServiceFcItf.java:126) at org.ow2.petals.microkernel.registry.overlay.DynamicTopologyListener.entryUpdated(DynamicTopologyListener.java:150) at com.hazelcast.map.impl.MapListenerAdaptors$4$1.onEvent(MapListenerAdaptors.java:125) at com.hazelcast.map.impl.InternalMapListenerAdapter.onEvent(InternalMapListenerAdapter.java:51) at com.hazelcast.client.proxy.ClientMapProxy$ClientMapEventHandler.handle(ClientMapProxy.java:1181) at com.hazelcast.client.proxy.ClientMapProxy$ClientMapEventHandler.handle(ClientMapProxy.java:1168) at com.hazelcast.client.spi.impl.ClientListenerServiceImpl$ClientEventProcessor.handleEvent(ClientListenerServiceImpl.java:176) at com.hazelcast.client.spi.impl.ClientListenerServiceImpl$ClientEventProcessor.run(ClientListenerServiceImpl.java:166) at com.hazelcast.util.executor.StripedExecutor$Worker.process(StripedExecutor.java:190) at com.hazelcast.util.executor.StripedExecutor$Worker.run(StripedExecutor.java:174)
Checking log files, we can see also that all JBI artifacts are shutdown when stopping the messaging sub-system during an attachment or detachment:
initial-container-1 2015/11/19 10:10:25,433 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Stopping messaging subsystem... initial-container-1 2015/11/19 10:10:25,434 GMT+0100 INFO [Petals.Server] : Stopping messaging sub-system ... initial-container-1 2015/11/19 10:10:25,443 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Stop Service Unit 'su-POJO-HelloService-5.0.0-SNAPSHOT' initial-container-1 2015/11/19 10:10:25,467 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Shut down Service Unit 'su-POJO-HelloService-5.0.0-SNAPSHOT' initial-container-1 2015/11/19 10:10:25,470 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Stop component... initial-container-1 2015/11/19 10:10:25,471 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Component stopped initial-container-1 2015/11/19 10:10:25,472 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Shut down component... initial-container-1 2015/11/19 10:10:25,473 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Component shut down initial-container-1 2015/11/19 10:10:25,479 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Stop component... initial-container-1 2015/11/19 10:10:25,481 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Component stopped initial-container-1 2015/11/19 10:10:25,482 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Shut down component... initial-container-1 2015/11/19 10:10:25,486 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Component shut down initial-container-1 2015/11/19 10:10:25,531 GMT+0100 INFO [Petals.Transporter.NioTransportProtocol.NioServerAgent] : The NIO Server agent is stopped. initial-container-1 2015/11/19 10:10:25,533 GMT+0100 INFO [Petals.Server] : Messaging sub-system stopped
But JBI artifacts are not restored when restarting the messaging sub-system:
initial-container-1 2015/11/19 10:10:26,239 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Restarting messaging subsystem... initial-container-1 2015/11/19 10:10:26,240 GMT+0100 INFO [Petals.Server] : Starting messaging sub-system ... initial-container-1 2015/11/19 10:10:26,276 GMT+0100 INFO [Petals.Server] : Messaging sub-system started initial-container-1 2015/11/19 10:10:26,277 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Messaging subsystem restarted.
So, explicitly deactivating/activating endpoints is unneeded. Just fix the start-up of the messaging sub-system to recover correctly JBI artifacts (see PETALSESBCONT-359).
initial-container-1 2015/11/19 10:10:25,433 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Stopping messaging subsystem... initial-container-1 2015/11/19 10:10:25,434 GMT+0100 INFO [Petals.Server] : Stopping messaging sub-system ... initial-container-1 2015/11/19 10:10:25,443 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Stop Service Unit 'su-POJO-HelloService-5.0.0-SNAPSHOT' initial-container-1 2015/11/19 10:10:25,467 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Shut down Service Unit 'su-POJO-HelloService-5.0.0-SNAPSHOT' initial-container-1 2015/11/19 10:10:25,470 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Stop component... initial-container-1 2015/11/19 10:10:25,471 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Component stopped initial-container-1 2015/11/19 10:10:25,472 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Shut down component... initial-container-1 2015/11/19 10:10:25,473 GMT+0100 INFO [Petals.Container.Components.petals-se-rmi] : Component shut down initial-container-1 2015/11/19 10:10:25,479 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Stop component... initial-container-1 2015/11/19 10:10:25,481 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Component stopped initial-container-1 2015/11/19 10:10:25,482 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Shut down component... initial-container-1 2015/11/19 10:10:25,486 GMT+0100 INFO [Petals.Container.Components.petals-se-pojo] : Component shut down initial-container-1 2015/11/19 10:10:25,531 GMT+0100 INFO [Petals.Transporter.NioTransportProtocol.NioServerAgent] : The NIO Server agent is stopped. initial-container-1 2015/11/19 10:10:25,533 GMT+0100 INFO [Petals.Server] : Messaging sub-system stopped
initial-container-1 2015/11/19 10:10:26,239 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Restarting messaging subsystem... initial-container-1 2015/11/19 10:10:26,240 GMT+0100 INFO [Petals.Server] : Starting messaging sub-system ... initial-container-1 2015/11/19 10:10:26,276 GMT+0100 INFO [Petals.Server] : Messaging sub-system started initial-container-1 2015/11/19 10:10:26,277 GMT+0100 FINER [Petals.Communication.TopologyService] : TopologyServiceImpl.attachContainerTo() Messaging subsystem restarted.
It's done, now there is other errors but I think it is not linked (for real this time) to this these changes ![]()
Don't forget to remove the useless remove of endpoints and the associated code please!
Has been reworked with svn#38745 as described in PETALSESBCONT-364
When exactly does this problem happen? Is detachment meant to stop or uninstall the components and the shared libraries?