You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "Aled Sage (JIRA)" <ji...@apache.org> on 2018/01/25 11:53:00 UTC

[jira] [Created] (JCLOUDS-1378) NullPointerException in NovaComputeServiceAdapter when VM fails to start

Aled Sage created JCLOUDS-1378:
----------------------------------

             Summary: NullPointerException in NovaComputeServiceAdapter when VM fails to start
                 Key: JCLOUDS-1378
                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1378
             Project: jclouds
          Issue Type: Bug
          Components: jclouds-compute
    Affects Versions: 2.0.3
            Reporter: Aled Sage


When provisioning a VM in Openstack Nova, I hit the \{{NullPointerException}} shown below:

{noformat}
createNodesInGroup(qa-amp1-xwbbiuo4qv) java.lang.NullPointerException
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)
com.google.common.base.Splitter.split(Splitter.java:386)
org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter.createNodeWithGroupEncodedIntoName(NovaComputeServiceAdapter.java:141)
org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.createNodeWithGroupEncodedIntoName(AdaptingComputeServiceStrategies.java:196)
org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:81)
org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:64)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)
java.lang.Thread.getStackTrace(Thread.java:1559)

org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.createNodeInGroupWithNameAndTemplate(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:169)
org.jclouds.openstack.nova.v2_0.compute.strategy.ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.createNodeInGroupWithNameAndTemplate(ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java:183)
org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:124)
org.jclouds.openstack.nova.v2_0.compute.strategy.ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java:160)
org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:217)
sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
com.sun.proxy.$Proxy180.createNodesInGroup:-1)
org.apache.brooklyn.location.jclouds.JcloudsLocation.obtainOnce(JcloudsLocation.java:756)
org.apache.brooklyn.location.jclouds.JcloudsLocation.obtain(JcloudsLocation.java:614)
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:451)
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:440)
org.apache.brooklyn.util.core.task.Tasks.withBlockingDetails(Tasks.java:113)
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:421)
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:396)
org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:364)
org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:565)
java.util.concurrent.FutureTask.run(FutureTask.java:266)}]},"extendedStackTrace":[{"class":"com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
org.jclouds.concurrent.FutureIterables$1.run(FutureIterables.java:123)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)
{noformat}

Earlier in the log, it showed:
{noformat}
2018-01-24T14:09:40.517Z : {"timeMillis":1516802980478,"thread":"user thread 1","level":"DEBUG","loggerName":"jclouds.compute","message":">> creating new server region(ca-ymq-1) name(qa-amp2-uiz49vcvcc-cd7) image(f99752dc-8b85-4aca-837b-c3109da4b1ad) flavor(52a01f6b-e660-48b5-8c06-5fb2a0fab0ec) options(CreateServerOptions{keyName=opensta
ck, securityGroupNames=[default], metadata=\{Name=qa-amp2-uiz49vcvcc-wupf, brooklyn-user=amp, brooklyn-app-id=y1yb9v55w2, brooklyn-app-name=ha-backup-test, brooklyn-entity-id=uiz49vcvcc, brooklyn-entity-name=amp2, brooklyn-server-creation-date=2018-01-24-1409}, userData=null, networks=[6d6357ac-0f70-4afa-8bd7-c274cc4ea235], availabilityZon
e=null, configDrive=false})","endOfBatch":false,"loggerFqcn":"org.ops4j.pax.logging.slf4j.Slf4jLogger","threadId":222,"threadPriority":5}
...
2018-01-24T14:29:42.039Z : \{"timeMillis":1516804182039,"thread":"user thread 0","level":"WARN","loggerName":"jclouds.compute","message":"Server qa-amp1-xwbbiuo4qv-873 was not created within 30 * 60ms. The resources created for it will be destroyed","endOfBatch":false,"loggerFqcn":"org.ops4j.pax.logging.slf4j.Slf4jLogger","threadId":219,"threadPriority":5}
{noformat}

The \{{NullPointerException}} happens only if the VM is not running with 30 minutes, and if \{{metadataAndTagsAsCommaDelimitedValue.get("jclouds_tags")}} returns null.

We should presumably guard against null here, and only call \{{split}} if it is non-null (I haven't checked if it returning \{{null}} would suggest that something else went wrong as well!).

Also, the warm message has the wrong time units. It says \{{30 * 60ms}} instead of \{{30 * 60s}}.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)