Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.9.2
-
None
Description
When provisioning a VM in azure, using the jclouds-labs azurecompute 1.9.2 release, I hit the NullPointerException shown below. The jclouds HttpResponseException marks getResponse as @Nullable, so we should guard against null when doing the logging in azurecompute.
1) ExecutionException on brookly-o4gv3w-amp-auto-mgid-riak-xaoo-e7e: java.util.concurrent.ExecutionException: java.lang.NullPointerException at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299) at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286) at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116) at org.jclouds.concurrent.FutureIterables$1.run(FutureIterables.java:123) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException at org.jclouds.azurecompute.util.ConflictManagementPredicate.apply(ConflictManagementPredicate.java:157) at org.jclouds.azurecompute.compute.AzureComputeServiceAdapter.createNodeWithGroupEncodedIntoName(AzureComputeServiceAdapter.java:147) at org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.createNodeWithGroupEncodedIntoName(AdaptingComputeServiceStrategies.java:195) at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:79) at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:63) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) at java.lang.Thread.getStackTrace(Thread.java:1589) at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.createNodeInGroupWithNameAndTemplate(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:167) at org.jclouds.azurecompute.compute.strategy.GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.createNodeInGroupWithNameAndTemplate(GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.java:89) at org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:122) at org.jclouds.azurecompute.compute.strategy.GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.execute(GetOrCreateStorageServiceAndVirtualNetworkThenCreateNodes.java:122) at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:210) at org.apache.brooklyn.location.jclouds.JcloudsLocation.obtainOnce(JcloudsLocation.java:723) at org.apache.brooklyn.location.jclouds.JcloudsLocation.obtain(JcloudsLocation.java:613) at org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:406) at org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:396) at org.apache.brooklyn.util.core.task.Tasks.withBlockingDetails(Tasks.java:98) at org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:380) at org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:364) at org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:359) at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:518) at java.util.concurrent.FutureTask.run(FutureTask.java:262) ... 3 more
FYI the request that seemed to fail was POST https://management.core.windows.net/00000000-0000-0000-0000-000000000000/services/hostedservices/brookly-o4gv3w-amp-auto-mgid-riak-xaoo-e7e/deployments HTTP/1.1. It then logged Command not considered safe to retry because request method is POST. This request had a very large number (maybe 2000?) of ports defined in externalEndpoints.