Uploaded image for project: 'Apache Whirr (retired)'
  1. Apache Whirr (retired)
  2. WHIRR-728

Empty locationid for vanilla openstack results in NullPointerException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.8.2
    • None
    • service/zookeeper

    Description

      In the whirr version 0.8.2 a NullPointerException occurs with configureServices with zookeeper during firewall operations.

      Setting location-id to RegionOne fixes it.
      Reporting this because I don't know if this is a bug or proper behaviour. I would expect the location-id to be RegionOne taken from whirr.image-id or whirr.hardware-id if location-id is not set?

      Also all my whirr-runs require jclouds.openstack-nova.auto-generate-keypairs to be set to true, otherwise an authorization exception is raised. Should I specify another issue for this?

      Log:

      14:02:08.135 [pool-4-thread-2] INFO org.apache.whirr.compute.NodeStarter - Nodes started: [{id=RegionOne/da02c9df-2026-44d7-a08a-7d48a6e231b9, providerId=da02c9df-2026-44d7-a08a-7d48a6e231b9, name=whirrtest-1-f8a, location=

      {scope=HOST, id=d3781468178d18f8a789261ff3cb9c3ed0c0444837e6d6bb5a896961, description=d3781468178d18f8a789261ff3cb9c3ed0c0444837e6d6bb5a896961, parent=RegionOne}, group=whirrtest-1, imageId=RegionOne/b647a9cd-99fa-4247-b775-dc0198f3777f, os={family=unrecognized, name=ubuntu-lucid-64, description=ubuntu-lucid-64, is64Bit=true}, status=RUNNING, loginPort=22, hostname=whirrtest-1-f8a, privateAddresses=[10.11.12.2], publicAddresses=[172.25.95.3], hardware={id=RegionOne/15, providerId=15, name=custom, location={scope=ZONE, id=RegionOne, description=RegionOne, parent=openstack-nova}, processors=[{cores=1.0, speed=1.0}], ram=256, volumes=[{type=LOCAL, size=10.0, bootDevice=true, durable=true}], supportsImage=ALWAYS_TRUE}, loginUser=root}, {id=RegionOne/518a5a35-9fea-4df7-aa91-ade52406b6a8, providerId=518a5a35-9fea-4df7-aa91-ade52406b6a8, name=whirrtest-1-17a, location={scope=HOST, id=d3781468178d18f8a789261ff3cb9c3ed0c0444837e6d6bb5a896961, description=d3781468178d18f8a789261ff3cb9c3ed0c0444837e6d6bb5a896961, parent=RegionOne}

      , group=whirrtest-1, imageId=RegionOne/b647a9cd-99fa-4247-b775-dc0198f3777f, os=

      {family=unrecognized, name=ubuntu-lucid-64, description=ubuntu-lucid-64, is64Bit=true}, status=RUNNING, loginPort=22, hostname=whirrtest-1-17a, privateAddresses=[10.11.12.3], publicAddresses=[172.25.95.2], hardware={id=RegionOne/15, providerId=15, name=custom, location={scope=ZONE, id=RegionOne, description=RegionOne, parent=openstack-nova}, processors=[{cores=1.0, speed=1.0}], ram=256, volumes=[{type=LOCAL, size=10.0, bootDevice=true, durable=true}], supportsImage=ALWAYS_TRUE}, loginUser=root}]
      14:02:08.139 [ForkJoinPool-1-worker-2] WARN o.a.w.state.ClusterStateStoreFactory - No cluster state is going to be persisted. There is no easy way to retrieve instance roles after launch.
      14:02:08.140 [ForkJoinPool-1-worker-1] INFO org.rugco.test.WhirrLaunchTest - Bootstrapped following cluster: Cluster{instances=[Instance{roles=[zookeeper], publicIp=172.25.95.3, privateIp=10.11.12.2, id=RegionOne/da02c9df-2026-44d7-a08a-7d48a6e231b9, nodeMetadata={id=RegionOne/da02c9df-2026-44d7-a08a-7d48a6e231b9, providerId=da02c9df-2026-44d7-a08a-7d48a6e231b9, name=whirrtest-1-f8a, location={scope=HOST, id=d3781468178d18f8a789261ff3cb9c3ed0c0444837e6d6bb5a896961, description=d3781468178d18f8a789261ff3cb9c3ed0c0444837e6d6bb5a896961, parent=RegionOne}, group=whirrtest-1, imageId=RegionOne/b647a9cd-99fa-4247-b775-dc0198f3777f, os={family=unrecognized, name=ubuntu-lucid-64, description=ubuntu-lucid-64, is64Bit=true}

      , status=RUNNING, loginPort=22, hostname=whirrtest-1-f8a, privateAddresses=[10.11.12.2], publicAddresses=[172.25.95.3], hardware={id=RegionOne/15, providerId=15, name=custom, location=

      {scope=ZONE, id=RegionOne, description=RegionOne, parent=openstack-nova}, processors=[{cores=1.0, speed=1.0}], ram=256, volumes=[{type=LOCAL, size=10.0, bootDevice=true, durable=true}], supportsImage=ALWAYS_TRUE}, loginUser=root}}, Instance{roles=[zookeeper], publicIp=172.25.95.2, privateIp=10.11.12.3, id=RegionOne/518a5a35-9fea-4df7-aa91-ade52406b6a8, nodeMetadata={id=RegionOne/518a5a35-9fea-4df7-aa91-ade52406b6a8, providerId=518a5a35-9fea-4df7-aa91-ade52406b6a8, name=whirrtest-1-17a, location={scope=HOST, id=d3781468178d18f8a789261ff3cb9c3ed0c0444837e6d6bb5a896961, description=d3781468178d18f8a789261ff3cb9c3ed0c0444837e6d6bb5a896961, parent=RegionOne}, group=whirrtest-1, imageId=RegionOne/b647a9cd-99fa-4247-b775-dc0198f3777f, os={family=unrecognized, name=ubuntu-lucid-64, description=ubuntu-lucid-64, is64Bit=true}, status=RUNNING, loginPort=22, hostname=whirrtest-1-17a, privateAddresses=[10.11.12.3], publicAddresses=[172.25.95.2], hardware={id=RegionOne/15, providerId=15, name=custom, location={scope=ZONE, id=RegionOne, description=RegionOne, parent=openstack-nova}

      , processors=[

      {cores=1.0, speed=1.0}

      ], ram=256, volumes=[

      {type=LOCAL, size=10.0, bootDevice=true, durable=true}

      ], supportsImage=ALWAYS_TRUE}, loginUser=root}}]}
      14:02:08.566 [ForkJoinPool-1-worker-1] INFO o.a.whirr.service.FirewallManager - Authorizing firewall ingress to [RegionOne/da02c9df-2026-44d7-a08a-7d48a6e231b9, RegionOne/518a5a35-9fea-4df7-aa91-ade52406b6a8] on ports [80, 22, 2181] for [213.126.101.146/32]
      14:02:08.566 [ForkJoinPool-1-worker-1] INFO o.a.whirr.service.FirewallManager - Authorizing firewall ingress to [RegionOne/da02c9df-2026-44d7-a08a-7d48a6e231b9, RegionOne/518a5a35-9fea-4df7-aa91-ade52406b6a8] on ports [2181] for [213.126.101.146/32]
      14:02:08.566 [ForkJoinPool-1-worker-1] INFO o.a.whirr.service.FirewallManager - Authorizing firewall ingress to [RegionOne/da02c9df-2026-44d7-a08a-7d48a6e231b9, RegionOne/518a5a35-9fea-4df7-aa91-ade52406b6a8] on ports [80, 22, 2181] for [213.126.101.146/32]
      java.lang.RuntimeException: java.lang.NullPointerException: arg[0] in

      {clazz=interface org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupAsyncApi, method=public abstract com.google.common.base.Optional org.jclouds.openstack.nova.v2_0.NovaApi.getSecurityGroupExtensionForZone(java.lang.String), args=[null], returnVal=Sync Proxy for: $Proxy94}

      at org.rugco.deployer.deployer.WhirrWrapper$$anonfun$launchInstance$1.applyOrElse(WhirrWrapper.scala:80)
      at org.rugco.deployer.deployer.WhirrWrapper$$anonfun$launchInstance$1.applyOrElse(WhirrWrapper.scala:71)
      at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33)
      at scala.concurrent.Future$$anonfun$onFailure$1.apply(Future.scala:137)
      at scala.concurrent.Future$$anonfun$onFailure$1.apply(Future.scala:136)
      at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:29)
      at scala.concurrent.impl.ExecutionContextImpl$$anon$3.exec(ExecutionContextImpl.scala:107)
      at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262)
      at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)
      at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1478)
      at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
      Caused by: java.lang.NullPointerException: arg[0] in

      {clazz=interface org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupAsyncApi, method=public abstract com.google.common.base.Optional org.jclouds.openstack.nova.v2_0.NovaApi.getSecurityGroupExtensionForZone(java.lang.String), args=[null], returnVal=Sync Proxy for: $Proxy94}

      at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:235)
      at org.jclouds.openstack.v2_0.functions.PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.apply(PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.java:70)
      at org.jclouds.openstack.v2_0.functions.PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.apply(PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.java:46)
      at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:159)
      at com.sun.proxy.$Proxy63.getSecurityGroupExtensionForZone(Unknown Source)
      at org.apache.whirr.service.FirewallManager.authorizeIngress(FirewallManager.java:310)
      at org.apache.whirr.service.FirewallManager.authorizeAllRules(FirewallManager.java:242)
      at org.apache.whirr.service.ClusterActionHandlerSupport.handleFirewallRules(ClusterActionHandlerSupport.java:220)
      at org.apache.whirr.service.zookeeper.ZooKeeperClusterActionHandler.beforeConfigure(ZooKeeperClusterActionHandler.java:87)
      at org.apache.whirr.service.ClusterActionHandlerSupport.beforeAction(ClusterActionHandlerSupport.java:58)
      at org.apache.whirr.actions.ScriptBasedClusterAction.execute(ScriptBasedClusterAction.java:123)
      at org.apache.whirr.ClusterController.configureServices(ClusterController.java:161)
      at org.apache.whirr.ClusterController.configureServices(ClusterController.java:153)
      at org.rugco.deployer.deployer.WhirrWrapper$$anonfun$configureServices$1.apply(WhirrWrapper.scala:40)
      at org.rugco.deployer.deployer.WhirrWrapper$$anonfun$configureServices$1.apply(WhirrWrapper.scala:38)
      at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
      at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
      ... 5 more
      14:02:08.576 [ForkJoinPool-1-worker-2] ERROR org.rugco.test.WhirrLaunchTest - CRITICAL the cluster failed to launch and the automated node termination option was not selected, there might be orphaned nodes.
      java.lang.NullPointerException: arg[0] in

      {clazz=interface org.jclouds.openstack.nova.v2_0.extensions.SecurityGroupAsyncApi, method=public abstract com.google.common.base.Optional org.jclouds.openstack.nova.v2_0.NovaApi.getSecurityGroupExtensionForZone(java.lang.String), args=[null], returnVal=Sync Proxy for: $Proxy94}

      at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:235) ~[guava-13.0.jar:na]
      at org.jclouds.openstack.v2_0.functions.PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.apply(PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.java:70) ~[openstack-keystone-1.5.8.jar:1.5.8]
      at org.jclouds.openstack.v2_0.functions.PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.apply(PresentWhenExtensionAnnotationNamespaceEqualsAnyNamespaceInExtensionsSet.java:46) ~[openstack-keystone-1.5.8.jar:1.5.8]
      at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:159) ~[jclouds-core-1.5.8.jar:1.5.8]
      at com.sun.proxy.$Proxy63.getSecurityGroupExtensionForZone(Unknown Source) ~[na:na]
      at org.apache.whirr.service.FirewallManager.authorizeIngress(FirewallManager.java:310) ~[whirr-core-0.8.2.jar:0.8.2]
      at org.apache.whirr.service.FirewallManager.authorizeAllRules(FirewallManager.java:242) ~[whirr-core-0.8.2.jar:0.8.2]
      at org.apache.whirr.service.ClusterActionHandlerSupport.handleFirewallRules(ClusterActionHandlerSupport.java:220) ~[whirr-core-0.8.2.jar:0.8.2]
      at org.apache.whirr.service.zookeeper.ZooKeeperClusterActionHandler.beforeConfigure(ZooKeeperClusterActionHandler.java:87) ~[whirr-zookeeper-0.8.2.jar:0.8.2]
      at org.apache.whirr.service.ClusterActionHandlerSupport.beforeAction(ClusterActionHandlerSupport.java:58) ~[whirr-core-0.8.2.jar:0.8.2]
      at org.apache.whirr.actions.ScriptBasedClusterAction.execute(ScriptBasedClusterAction.java:123) ~[whirr-core-0.8.2.jar:0.8.2]
      at org.apache.whirr.ClusterController.configureServices(ClusterController.java:161) ~[whirr-core-0.8.2.jar:0.8.2]
      at org.apache.whirr.ClusterController.configureServices(ClusterController.java:153) ~[whirr-core-0.8.2.jar:0.8.2]

      Attachments

        Activity

          People

            Unassigned Unassigned
            wernerbu Werner Buck
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: