Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-4292

[Patch mechanism] Unable to create child container with patched root

XMLWordPrintable

    • % %
    • Hide
      1. fabric:create (GA)
      2. container-create-child root testcontainer
      3. install the patching mechanism for build nr. 70, using steps provided in : https://mojo.redhat.com/docs/DOC-1049758 (Patch is applied to version 1.1 but not used)
      4. container-upgrade 1.1 testcontainer
      5. container-upgrade 1.1 root
      Show
      fabric:create (GA) container-create-child root testcontainer install the patching mechanism for build nr. 70, using steps provided in : https://mojo.redhat.com/docs/DOC-1049758 (Patch is applied to version 1.1 but not used) container-upgrade 1.1 testcontainer container-upgrade 1.1 root

      I am not sure if it relevant, but I created one child container in GA fabric. Then I created new version 1.1 with build 070 applied as patch. Afterwards I successfully upgraded the child container 1.1 and then also the root.

      After upgrading root container:

      JBossFuse:karaf@root> container-list
      [id]             [version]  [type]  [connected]  [profiles]              [provision status]
      root*            1.1        karaf   yes          fabric                  success           
                                                       fabric-ensemble-0000-1                    
                                                       jboss-fuse-full                           
        testcontainer  1.1        karaf   yes          default                 success  
      

      Now if i want to create new child container in version 1.1 or 1.0:

      JBossFuse:karaf@root> container-create-child --version 1.1 root testcontainer2
      The following containers have failed:
      	testcontainer2: Error unmarshaling return; nested exception is: 
      	java.lang.ClassNotFoundException: org.osgi.service.blueprint.container.ServiceUnavailableException (no security manager: RMI class loader disabled)
      JBossFuse:karaf@root> container-create-child --version 1.0 root testcontainer2
      The following containers have failed:
      	testcontainer2: Error unmarshaling return; nested exception is: 
      	java.lang.ClassNotFoundException: org.osgi.service.blueprint.container.ServiceUnavailableException (no security manager: RMI class loader disabled)
      

      Log:

      2015-10-27 11:18:31,263 | INFO  | r testcontainer2 | ChildContainerProvider           | 77 - io.fabric8.fabric-core - 1.2.0.redhat-621070 | Using container controller io.fabric8.service.child.ChildContainerProvider$1@267241d
      2015-10-27 11:18:31,762 | WARN  | r testcontainer2 | FabricServiceImpl                | 77 - io.fabric8.fabric-core - 1.2.0.redhat-621070 | The creation of the container testcontainer2 has failed
      java.rmi.UnmarshalException: Error unmarshaling return; nested exception is: 
      	java.lang.ClassNotFoundException: org.osgi.service.blueprint.container.ServiceUnavailableException (no security manager: RMI class loader disabled)
      	at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:246)[:1.7.0_80]
      	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)[:1.7.0_80]
      	at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)[:1.7.0_80]
      	at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttribute(Unknown Source)[:1.7.0_80]
      	at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:906)[:1.7.0_80]
      	at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:267)[:1.7.0_80]
      	at com.sun.proxy.$Proxy104.getInstances(Unknown Source)[14:org.apache.karaf.admin.management:2.4.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.getParentBasePath(ChildContainerProvider.java:351)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.doCreateKaraf(ChildContainerProvider.java:337)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.access$100(ChildContainerProvider.java:55)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider$1$1.doWithAdminService(ChildContainerProvider.java:192)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider$1$1.doWithAdminService(ChildContainerProvider.java:190)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.ContainerTemplate$2.doWithJmxConnector(ContainerTemplate.java:94)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.NonCachingJmxTemplate.execute(NonCachingJmxTemplate.java:37)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.ContainerTemplate.execute(ContainerTemplate.java:91)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider$1.create(ChildContainerProvider.java:190)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.create(ChildContainerProvider.java:87)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.create(ChildContainerProvider.java:49)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.FabricServiceImpl$1.run(FabricServiceImpl.java:573)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      Caused by: java.lang.ClassNotFoundException: org.osgi.service.blueprint.container.ServiceUnavailableException (no security manager: RMI class loader disabled)
      	at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:393)[:1.7.0_80]
      	at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:185)[:1.7.0_80]
      	at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)[:1.7.0_80]
      	at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)[:1.7.0_80]
      	at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:214)[:1.7.0_80]
      	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)[:1.7.0_80]
      	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)[:1.7.0_80]
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)[:1.7.0_80]
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)[:1.7.0_80]
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)[:1.7.0_80]
      	at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:244)[:1.7.0_80]
      	... 18 more
      2015-10-27 11:19:11,391 | INFO  | r testcontainer2 | ChildContainerProvider           | 77 - io.fabric8.fabric-core - 1.2.0.redhat-621070 | Using container controller io.fabric8.service.child.ChildContainerProvider$1@d5acbb2
      2015-10-27 11:19:11,889 | WARN  | r testcontainer2 | FabricServiceImpl                | 77 - io.fabric8.fabric-core - 1.2.0.redhat-621070 | The creation of the container testcontainer2 has failed
      java.rmi.UnmarshalException: Error unmarshaling return; nested exception is: 
      	java.lang.ClassNotFoundException: org.osgi.service.blueprint.container.ServiceUnavailableException (no security manager: RMI class loader disabled)
      	at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:246)[:1.7.0_80]
      	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)[:1.7.0_80]
      	at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)[:1.7.0_80]
      	at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttribute(Unknown Source)[:1.7.0_80]
      	at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:906)[:1.7.0_80]
      	at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:267)[:1.7.0_80]
      	at com.sun.proxy.$Proxy104.getInstances(Unknown Source)[14:org.apache.karaf.admin.management:2.4.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.getParentBasePath(ChildContainerProvider.java:351)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.doCreateKaraf(ChildContainerProvider.java:337)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.access$100(ChildContainerProvider.java:55)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider$1$1.doWithAdminService(ChildContainerProvider.java:192)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider$1$1.doWithAdminService(ChildContainerProvider.java:190)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.ContainerTemplate$2.doWithJmxConnector(ContainerTemplate.java:94)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.NonCachingJmxTemplate.execute(NonCachingJmxTemplate.java:37)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.ContainerTemplate.execute(ContainerTemplate.java:91)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider$1.create(ChildContainerProvider.java:190)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.create(ChildContainerProvider.java:87)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.child.ChildContainerProvider.create(ChildContainerProvider.java:49)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      	at io.fabric8.service.FabricServiceImpl$1.run(FabricServiceImpl.java:573)[77:io.fabric8.fabric-core:1.2.0.redhat-621070]
      Caused by: java.lang.ClassNotFoundException: org.osgi.service.blueprint.container.ServiceUnavailableException (no security manager: RMI class loader disabled)
      	at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:393)[:1.7.0_80]
      	at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:185)[:1.7.0_80]
      	at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)[:1.7.0_80]
      	at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)[:1.7.0_80]
      	at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:214)[:1.7.0_80]
      	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)[:1.7.0_80]
      	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)[:1.7.0_80]
      	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)[:1.7.0_80]
      	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)[:1.7.0_80]
      	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)[:1.7.0_80]
      	at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:244)[:1.7.0_80]
      	... 18 more
      

      Also I am unable to stop the already created child container but I am able to connect to it via container-connect:

      JBossFuse:karaf@root> container-stop testcontainer 
      The list of container names: [testcontainer]
      Error executing command: java.rmi.UnmarshalException: Error unmarshaling return; nested exception is: 
      	java.lang.ClassNotFoundException: org.osgi.service.blueprint.container.ServiceUnavailableException (no security manager: RMI class loader disabled)
      

      If root container is restarted then all commands work without problem but fabric is unable to provision child container created with a old version (I am not really sure if this supported). It is stuck at analyzing.

      JBossFuse:karaf@root> container-create-child --version 1.0 root testcontainer2
      Jmx Login for root: admin
      Jmx Password for root: 
      Creating new instance on SSH port 8104 and RMI ports 1102/44447 at: /home/rjakubco/Fuse/jboss-fuse-6.2.0.redhat-133/instances/testcontainer2
      The following containers have been created successfully:
      	Container: testcontainer2.
      JBossFuse:karaf@root> container-create-child --version 1.1 root testcontainer3
      Creating new instance on SSH port 8105 and RMI ports 1103/44448 at: /home/rjakubco/Fuse/jboss-fuse-6.2.0.redhat-133/instances/testcontainer3
      The following containers have been created successfully:
      	Container: testcontainer3.
      JBossFuse:karaf@root> container-list
      [id]              [version]  [type]  [connected]  [profiles]              [provision status]
      root*             1.1        karaf   yes          fabric                  success           
                                                        fabric-ensemble-0000-1                    
                                                        jboss-fuse-full                           
        testcontainer   1.1        karaf   no           default                 stopped           
        testcontainer2  1.0        karaf   no           default                 analyzing         
        testcontainer3  1.1        karaf   yes          default                 success  
      

            ggrzybek Grzegorz Grzybek
            rjakubco Roman Jakubco (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: