Werner Buck created WHIRR-728:
---------------------------------
Summary: Empty locationid for vanilla openstack results in
NullPointerException
Key: WHIRR-728
URL: https://issues.apache.org/jira/browse/WHIRR-728
Project: Whirr
Issue Type: Bug
Components: service/zookeeper
Affects Versions: 0.8.2
Environment: Openstack Nova (Vanilla)
Options:
whirr.instance-templates=2 zookeeper
whirr.provider = openstack-nova
whirr.hardware-id = RegionOne/15
whirr.image-id = RegionOne/b647a9cd-99fa-4247-b775-dc0198f3777f (ubuntu lucid
cloud image)
jclouds.keystone.tenant-id = a8a405cb510e4607b3f31cf002b60a28
whirr.endpoint = http://ip:5000/v2.0
whirr.identity = demo:admin
whirr.credential = password
jclouds.openstack-nova.auto-create-floating-ips = true
jclouds.openstack-nova.auto-generate-keypairs = true
Reporter: Werner Buck
Priority: Trivial
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]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira