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

Provisioning containers fails with a java.lang.NullPointerException for Maven-URL

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • jboss-fuse-6.2.1
    • jboss-fuse-6.2
    • Fabric8 v1
    • None
    • % %
    • Hide

      I have reproduced the issue with the following (partial) script:

      echo >> fuse-demo-setup.cli <<EOF
      wait-for-command = {
        wait-for-service "(&(objectClass=org.apache.felix.service.command.Function)(osgi.command.scope=$1)(osgi.command.function=$2))"
      }
      wait-for-service "io.fabric8.api.FabricService";
      wait-for-command fabric wait-for-provisioning;
      fabric:wait-for-provisioning --provision-timeout 300000
      EOF
      ENSEMBLE_NR="2"
      for FUSE_ENSEMBLE_HOST in $FUSE_ENSEMBLE_HOSTS ; do
        CONTAINER_IP="`get_remote_ip $FUSE_ENSEMBLE_HOST`"
        cat >> fuse-demo-setup.cli <<EOF
      fabric:container-create-ssh --host $FUSE_ENSEMBLE_HOST -b $CONTAINER_IP --path /opt/fuse --profile fabric m0${ENSEMBLE_NR}-ensemble
      EOF
      ENSEMBLE_NR=$((ENSEMBLE_NR+1))
      done
      cat >> fuse-demo-setup.cli <<EOF
      wait-for-service "io.fabric8.api.FabricService";
      wait-for-command fabric wait-for-provisioning;
      fabric:wait-for-provisioning --provision-timeout 300000
      fabric:ensemble-add --force m02-ensemble m03-ensemble m04-ensemble m05-ensemble
      fabric:wait-for-provisioning --provision-timeout 300000
      container-create-child --profile insight-elasticsearch.datastore m02-ensemble m02-esdata
      container-create-child --profile insight-elasticsearch.datastore m03-ensemble m03-esdata
      fabric:wait-for-provisioning --provision-timeout 300000
      container-add-profile m01-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console
      container-add-profile m02-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console
      container-add-profile m03-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console
      container-add-profile m04-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console
      container-add-profile m05-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console
      fabric:wait-for-provisioning --provision-timeout 300000
      container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch m02-ensemble m02-broker
      container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch m03-ensemble m03-broker
      container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch m04-ensemble m04-broker
      container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch m05-ensemble m05-broker
      mq-create --data /data/vol1 --group site-01 --networks site-02 --networks-username admin --networks-password admin --port openwire=61616 --assign-container m02-broker,m03-broker site-01
      mq-create --data /data/vol2 --group site-02 --networks site-01 --networks-username admin --networks-password admin --port openwire=61616 --assign-container m04-broker,m05-broker site-02
      fabric:wait-for-provisioning --provision-timeout 300000
      container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch --profile insight-camel --profile mq-client-site-01 --profile example-camel-loanbroker-mq.bank1 --profile example-camel-loanbroker-mq.bank2 m01-ensemble m01-bank-1-bank-2
      container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch --profile insight-camel --profile mq-client-site-02 --profile example-camel-loanbroker-mq.bank3 --profile example-camel-loanbroker-mq.loanBroker m01-ensemble m01-bank-3-loanbroker
      fabric:wait-for-provisioning --provision-timeout 300000
      EOF
      
        execute_fuse_command "shell:source file://$CURRENT_DIR/fuse-demo-setup.cli"
      
      
      Show
      I have reproduced the issue with the following (partial) script: echo >> fuse-demo-setup.cli <<EOF wait- for -command = { wait- for -service "(&(objectClass=org.apache.felix.service.command.Function)(osgi.command.scope=$1)(osgi.command.function=$2))" } wait- for -service "io.fabric8.api.FabricService" ; wait- for -command fabric wait- for -provisioning; fabric:wait- for -provisioning --provision-timeout 300000 EOF ENSEMBLE_NR= "2" for FUSE_ENSEMBLE_HOST in $FUSE_ENSEMBLE_HOSTS ; do CONTAINER_IP= "`get_remote_ip $FUSE_ENSEMBLE_HOST`" cat >> fuse-demo-setup.cli <<EOF fabric:container-create-ssh --host $FUSE_ENSEMBLE_HOST -b $CONTAINER_IP --path /opt/fuse --profile fabric m0${ENSEMBLE_NR}-ensemble EOF ENSEMBLE_NR=$((ENSEMBLE_NR+1)) done cat >> fuse-demo-setup.cli <<EOF wait- for -service "io.fabric8.api.FabricService" ; wait- for -command fabric wait- for -provisioning; fabric:wait- for -provisioning --provision-timeout 300000 fabric:ensemble-add --force m02-ensemble m03-ensemble m04-ensemble m05-ensemble fabric:wait- for -provisioning --provision-timeout 300000 container-create-child --profile insight-elasticsearch.datastore m02-ensemble m02-esdata container-create-child --profile insight-elasticsearch.datastore m03-ensemble m03-esdata fabric:wait- for -provisioning --provision-timeout 300000 container-add-profile m01-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console container-add-profile m02-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console container-add-profile m03-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console container-add-profile m04-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console container-add-profile m05-ensemble insight-logs.elasticsearch,insight-metrics.elasticsearch,insight-console fabric:wait- for -provisioning --provision-timeout 300000 container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch m02-ensemble m02-broker container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch m03-ensemble m03-broker container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch m04-ensemble m04-broker container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch m05-ensemble m05-broker mq-create --data /data/vol1 --group site-01 --networks site-02 --networks-username admin --networks-password admin --port openwire=61616 --assign-container m02-broker,m03-broker site-01 mq-create --data /data/vol2 --group site-02 --networks site-01 --networks-username admin --networks-password admin --port openwire=61616 --assign-container m04-broker,m05-broker site-02 fabric:wait- for -provisioning --provision-timeout 300000 container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch --profile insight-camel --profile mq-client-site-01 --profile example-camel-loanbroker-mq.bank1 --profile example-camel-loanbroker-mq.bank2 m01-ensemble m01-bank-1-bank-2 container-create-child --profile insight-logs.elasticsearch --profile insight-metrics.elasticsearch --profile insight-camel --profile mq-client-site-02 --profile example-camel-loanbroker-mq.bank3 --profile example-camel-loanbroker-mq.loanBroker m01-ensemble m01-bank-3-loanbroker fabric:wait- for -provisioning --provision-timeout 300000 EOF execute_fuse_command "shell:source file: //$CURRENT_DIR/fuse-demo-setup.cli"

    Description

      When on JBoss Fuse 6.2.1-078 trying to provision a container via SSH most of the time I get this error:

      2015-11-23 09:43:14,163 | INFO  | 4]-nio2-thread-2 | ShellCommandFactory              | 122 - org.apache.karaf.shell.ssh - 2.4.0.redhat-621078 | Exception caught while executing command
      io.fabric8.api.FabricException: Error provisioning container m04-ensemble : error - java.lang.NullPointerException
              at io.fabric8.commands.WaitForProvisioningAction.isFabricProvisioned(WaitForProvisioningAction.java:81)
              at io.fabric8.commands.WaitForProvisioningAction.waitForSuccessfulDeploymentOf(WaitForProvisioningAction.java:56)
              at io.fabric8.commands.WaitForProvisioningAction.doExecute(WaitForProvisioningAction.java:47)
              at org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
              at org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35)
              at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_65]
              at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_65]
              at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54)
              at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119)
              at io.fabric8.commands.$WaitForProvisioning1985823968.execute(Unknown Source)
              at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
              at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
              at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
              at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
              at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
              at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
              at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92)
              at org.apache.karaf.shell.commands.SourceAction.doExecute(SourceAction.java:76)
              at org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
              at org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.8.0_65]
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[:1.8.0_65]
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.8.0_65]
              at java.lang.reflect.Method.invoke(Method.java:497)[:1.8.0_65]
              at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54)
              at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119)
              at org.apache.karaf.shell.console.commands.$BlueprintCommand1744654852.execute(Unknown Source)
              at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
              at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
              at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
              at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
              at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
              at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
              at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92)
              at org.apache.karaf.shell.ssh.ShellCommandFactory$ShellCommand$1.run(ShellCommandFactory.java:126)
              at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_65]
              at org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:67)
              at org.apache.karaf.shell.ssh.ShellCommandFactory$ShellCommand.start(ShellCommandFactory.java:119)
              at org.apache.sshd.server.channel.ChannelSession.handleExec(ChannelSession.java:448)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.server.channel.ChannelSession.handleRequest(ChannelSession.java:311)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.server.channel.ChannelSession$ChannelSessionRequestHandler.process(ChannelSession.java:602)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.server.channel.ChannelSession$ChannelSessionRequestHandler.process(ChannelSession.java:600)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.channel.AbstractChannel.handleRequest(AbstractChannel.java:100)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.session.AbstractConnectionService.channelRequest(AbstractConnectionService.java:274)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.session.AbstractConnectionService.process(AbstractConnectionService.java:153)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.session.AbstractSession.doHandleMessage(AbstractSession.java:431)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.session.AbstractSession.handleMessage(AbstractSession.java:326)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.session.AbstractSession.decode(AbstractSession.java:780)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.session.AbstractSession.messageReceived(AbstractSession.java:308)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:54)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:184)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:170)[124:org.apache.sshd.core:0.14.0]
              at org.apache.sshd.common.io.nio2.Nio2CompletionHandler$1.run(Nio2CompletionHandler.java:32)
              at java.security.AccessController.doPrivileged(Native Method)[:1.8.0_65]
              at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:30)[124:org.apache.sshd.core:0.14.0]
              at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)[:1.8.0_65]
              at sun.nio.ch.Invoker$2.run(Invoker.java:218)[:1.8.0_65]
              at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)[:1.8.0_65]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_65]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_65]
              at java.lang.Thread.run(Thread.java:745)[:1.8.0_65]
       

      The log from m04-ensemble shows earlier:

      2015-11-23 09:41:53,709 | ERROR | 2.0.1-1-thread-1 | DeploymentAgent                  | 72 - io.fabric8.fabric-agent - 1.2.0.redhat-621078 | Unable to update agent
      java.lang.NullPointerException
              at java.net.URI$Parser.parse(URI.java:3042)[:1.8.0_65]
              at java.net.URI.<init>(URI.java:588)[:1.8.0_65]
              at io.fabric8.service.FabricServiceImpl.getMavenRepoURIs(FabricServiceImpl.java:866)[68:io.fabric8.fabric-core:1.2.0.redhat-621078]
              at io.fabric8.agent.DeploymentAgent.updateMavenRepositoryConfiguration(DeploymentAgent.java:202)[72:io.fabric8.fabric-agent:1.2.0.redhat-621078]
              at io.fabric8.agent.DeploymentAgent.doUpdate(DeploymentAgent.java:405)[72:io.fabric8.fabric-agent:1.2.0.redhat-621078]
              at io.fabric8.agent.DeploymentAgent$4.run(DeploymentAgent.java:283)[72:io.fabric8.fabric-agent:1.2.0.redhat-621078]
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_65]
              at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_65]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_65]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_65]
      
      

      Attachments

        Activity

          People

            pantinor@redhat.com Paolo Antinori
            rhn-gps-jcordes Jochen Cordes
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: