Aled Sage created JCLOUDS-1283:
----------------------------------

             Summary: IllegalArgumentException in OpenStack destroyNode, after 
failure to provision
                 Key: JCLOUDS-1283
                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1283
             Project: jclouds
          Issue Type: Bug
          Components: jclouds-compute
    Affects Versions: 1.9.2
            Reporter: Aled Sage
            Priority: Trivial


As reported in https://issues.apache.org/jira/browse/BROOKLYN-295, with jclouds 
1.9.2 (looking at the line numbers, it looks like 2.0.1 would have the same 
behaviour).

I attempted to deploy an app to OpenStack. It failed to provision due to 
insufficient resources (hence tricky to reproduce). But then jclouds tried and 
failed to destroy the VM.

It would be nice if jclouds handled the failure more gracefully. This exception 
hides the message about the provisioning request failing.

The exception in jclouds was:

{noformat}
java.lang.IllegalArgumentException: id must be in format regionId/id
{noformat}

The provisioning error (shown in the OpenStack web-console) was:

{noformat}
Message  No valid host was found. Exceeded max scheduling attempts 3 for 
instance e74952b7-f495-4148-9a09-c4dee0d75e7a. Last exception: [u'Traceback 
(most recent call last):\n', u' File 
"/opt/bbc/openstack-11.0-bbc173/nova/local/lib/python2.7/site-packages/nova/c
Code     500
Details  File 
"/opt/bbc/openstack-11.0-bbc173/nova/local/lib/python2.7/site-packages/nova/conductor/manager.py",
 line 669, in build_instances instances[0].uuid) File 
"/opt/bbc/openstack-11.0-bbc173/nova/local/lib/python2.7/site-packages/nova/scheduler/utils.py",
 line 172, in populate_retry raise exception.NoValidHost(reason=msg)
Created  June 8, 2016, 10:33 a.m.
{noformat}

The Brooklyn debug log shows:

{noformat}
2016-06-08 11:33:45,215 DEBUG o.a.b.l.j.JcloudsLocation 
[brooklyn-execmanager-yA1Lh5GF-504]: jclouds using template 
{image={id=RegionOne/e16a7bca-7363-45b1-bd6a-02479d4cea77, 
providerId=e16a7bca-7363-45b1-bd6a-02479d4cea77, name=CentOS 7, 
location={scope=REGION, id=RegionOne, description=RegionOne, 
parent=openstack-nova}, os={family=centos, name=CentOS 7, version=, 
description=CentOS 7, is64Bit=true}, description=CentOS 7, status=AVAILABLE, 
loginUser=root}, hardware={id=RegionOne/2, providerId=2, name=m1.small, 
location={scope=REGION, id=RegionOne, description=RegionOne, 
parent=openstack-nova}, processors=[{cores=1.0, speed=1.0}], ram=2048, 
volumes=[{type=LOCAL, size=20.0, bootDevice=true, durable=true}], 
supportsImage=ALWAYS_TRUE}, location={scope=REGION, id=RegionOne, 
description=RegionOne, parent=openstack-nova}, options={loginUser=centos, 
loginPrivateKeyPresent=true, inboundPorts=[22, 3376, 2376], scriptPresent=true, 
securityGroups=[VPN_local], 
userMetadata={Name=brooklyn-o8g809-aled-docker-swarm-yfxf-swarm-node-rj29-zj5s, 
brooklyn-user=aled, brooklyn-app-id=yfxfed97j6, brooklyn-app-name=Docker Swarm, 
brooklyn-entity-id=rj29jfrfvy, brooklyn-entity-name=swarm-node, 
brooklyn-server-creation-date=2016-06-08-1133}, 
networks=[e472fd1f-01f8-493a-b284-b0ff0b0e305f], autoAssignFloatingIp=false, 
keyPairName=openstack, configDrive=false}} / options {loginUser=centos, 
loginPrivateKeyPresent=true, inboundPorts=[22, 3376, 2376], scriptPresent=true, 
securityGroups=[VPN_local], 
userMetadata={Name=brooklyn-o8g809-aled-docker-swarm-yfxf-swarm-node-rj29-zj5s, 
brooklyn-user=aled, brooklyn-app-id=yfxfed97j6, brooklyn-app-name=Docker Swarm, 
brooklyn-entity-id=rj29jfrfvy, brooklyn-entity-name=swarm-node, 
brooklyn-server-creation-date=2016-06-08-1133}, 
networks=[e472fd1f-01f8-493a-b284-b0ff0b0e305f], autoAssignFloatingIp=false, 
keyPairName=openstack, configDrive=false} to provision machine in 
openstack-nova:https:/acme.com:5000/v2.0@VanillaSoftwareProcessImpl{id=rj29jfrfvy}
2016-06-08 11:33:45,215 DEBUG o.a.b.l.j.JcloudsLocation 
[brooklyn-execmanager-yA1Lh5GF-504]: NOTE: unused flags passed to obtain VM in 
openstack-nova:https://acme.com:5000/v2.0@VanillaSoftwareProcessImpl{id=rj29jfrfvy}:
 {jclouds.keystone.credential-type=xxxxxxxx, 
machineCreationSemaphore=java.util.concurrent.Semaphore@78d9e87b[Permits = 
2147483643]}
2016-06-08 11:33:45,215 DEBUG jclouds.compute 
[brooklyn-execmanager-yA1Lh5GF-504]: >> running 1 node 
group(brooklyn-o8g809-aled-docker-swarm-yfxf-swarm-node-rj29) 
location(RegionOne) image(RegionOne/e16a7bca-7363-45b1-bd6a-02479d4cea77) 
hardwareProfile(RegionOne/2) options({loginUser=centos, 
loginPrivateKeyPresent=true, inboundPorts=[22, 3376, 2376], scriptPresent=true, 
securityGroups=[VPN_local], 
userMetadata={Name=brooklyn-o8g809-aled-docker-swarm-yfxf-swarm-node-rj29-zj5s, 
brooklyn-user=aled, brooklyn-app-id=yfxfed97j6, brooklyn-app-name=Docker Swarm, 
brooklyn-entity-id=rj29jfrfvy, brooklyn-entity-name=swarm-node, 
brooklyn-server-creation-date=2016-06-08-1133}, 
networks=[e472fd1f-01f8-493a-b284-b0ff0b0e305f], autoAssignFloatingIp=false, 
keyPairName=openstack, configDrive=false})
2016-06-08 11:33:45,218 DEBUG o.j.l.s.f.RegionIdsFromConfiguration 
[brooklyn-execmanager-yA1Lh5GF-504]: no jclouds.regions configured for provider 
openstack-nova

2016-06-08 12:03:48,046 DEBUG jclouds.headers [user thread 8]: >> GET 
https://acme.com:8774/v2/691aa6dd3e4e482aaaf7f73b16fffc18/servers/e74952b7-f495-4148-9a09-c4dee0d75e7a
 HTTP/1.1
2016-06-08 12:03:48,046 DEBUG jclouds.headers [user thread 8]: >> Accept: 
application/json
2016-06-08 12:03:48,046 DEBUG jclouds.headers [user thread 8]: >> X-Auth-Token: 
50f7eaf091ea4ca494bbfc591d7f61a7
2016-06-08 12:03:48,855 DEBUG o.j.h.i.JavaUrlHttpCommandExecutorService [user 
thread 8]: Receiving response -2055078403: HTTP/1.1 200 OK
2016-06-08 12:03:48,855 DEBUG jclouds.headers [user thread 8]: << HTTP/1.1 200 
OK
2016-06-08 12:03:48,855 DEBUG jclouds.headers [user thread 8]: << Date: Wed, 08 
Jun 2016 11:03:48 GMT
2016-06-08 12:03:48,855 DEBUG jclouds.headers [user thread 8]: << Connection: 
close
2016-06-08 12:03:48,855 DEBUG jclouds.headers [user thread 8]: << 
X-Compute-Request-Id: req-8c17bd92-eada-4d90-b002-4cd2ef697343
2016-06-08 12:03:48,855 DEBUG jclouds.headers [user thread 8]: << Content-Type: 
application/json
2016-06-08 12:03:48,855 DEBUG jclouds.headers [user thread 8]: << 
Content-Length: 2709
2016-06-08 12:03:48,855 DEBUG jclouds.wire [user thread 8]: << "{"server": 
{"status": "ERROR", "updated": "2016-06-08T10:33:51Z", "hostId": 
"8a47d0589f92964343fa21a82dfdc01abf880c069ffaf88c7bf8ba4a", 
"OS-EXT-SRV-ATTR:host": "ds0017", "addresses": {}, "links": [{"href": 
"http://acme.com:8774/v2/691aa6dd3e4e482aaaf7f73b16fffc18/servers/e74952b7-f495-4148-9a09-c4dee0d75e7a";,
 "rel": "self"}, {"href": 
"http://acme.com:8774/691aa6dd3e4e482aaaf7f73b16fffc18/servers/e74952b7-f495
-4148-9a09-c4dee0d75e7a", "rel": "bookmark"}], "key_name": "openstack", 
"image": {"id": "e16a7bca-7363-45b1-bd6a-02479d4cea77", "links": [{"href": 
"http://acme.com:8774/691aa6dd3e4e482aaaf7f73b16fffc18/images/e16a7bca-7363-45b1-bd6a-02479
d4cea77", "rel": "bookmark"}]}, "OS-EXT-STS:task_state": null, 
"OS-EXT-STS:vm_state": "error", "OS-EXT-SRV-ATTR:instance_name": 
"instance-00000d8b", "OS-SRV-USG:launched_at": null, 
"OS-EXT-SRV-ATTR:hypervisor_hostname": "ds0017.sng01.blueboxgrid.com", 
"flavor": {"id": "
2", "links": [{"href": 
"http://acme.com:8774/691aa6dd3e4e482aaaf7f73b16fffc18/flavors/2";, "rel": 
"bookmark"}]}, "id": "e74952b7-f495-4148-9a09-c4dee0d75e7a", 
"OS-SRV-USG:terminated_at": null, "OS-EXT-AZ:availability_zone": "nova", "user_i
d": "111195567c864830ae4ade124a4a1efe", "name": 
"brooklyn-o8g809-aled-docker-swarm-yfxf-swarm-node-rj29-823", "created": 
"2016-06-08T10:33:48Z", "tenant_id": "691aa6dd3e4e482aaaf7f73b16fffc18", 
"OS-DCF:diskConfig": "MANUAL", "os-extended-volumes:volumes_attached": [], "
accessIPv4": "", "accessIPv6": "", "fault": {"message": "No valid host was 
found. Exceeded max scheduling attempts 3 for instance 
e74952b7-f495-4148-9a09-c4dee0d75e7a. Last exception: [u'Traceback (most recent 
call last):\\n', u'  File \"/opt/bbc/openstack-11.0-bbc173/n
ova/local/lib/python2.7/site-packages/nova/c", "code": 500, "details": "  File 
\"/opt/bbc/openstack-11.0-bbc173/nova/local/lib/python2.7/site-packages/nova/conductor/manager.py\",
 line 669, in build_instances\n    instances[0].uuid)\n  File 
\"/opt/bbc/openstack-11.0-bbc
173/nova/local/lib/python2.7/site-packages/nova/scheduler/utils.py\", line 172, 
in populate_retry\n    raise exception.NoValidHost(reason=msg)\n", "created": 
"2016-06-08T10:33:51Z"}, "OS-EXT-STS:power_state": 0, "config_drive": "", 
"metadata": {"brooklyn-app-name": "Doc
ker Swarm", "brooklyn-entity-id": "rj29jfrfvy", "brooklyn-app-id": 
"yfxfed97j6", "brooklyn-user": "aled", "brooklyn-entity-name": "swarm-node", 
"brooklyn-server-creation-date": "2016-06-08-1133", "Name": 
"brooklyn-o8g809-aled-docker-swarm-yfxf-swarm-node-rj29-zj5s", "jc
louds-group": "brooklyn-o8g809-aled-docker-swarm-yfxf-swarm-node-rj29"}}}"
2016-06-08 12:03:48,860 WARN  jclouds.compute [user thread 8]: Server 
brooklyn-o8g809-aled-docker-swarm-yfxf-swarm-node-rj29-823 was not created 
within 30 * 60ms so it will be destroyed.
2016-06-08 12:03:48,940 ERROR jclouds.compute [user thread 14]: 
createNodesInGroup(brooklyn-o8g809-aled-docker-swarm-yfxf-swarm-node-rj29), 
completed: 0/1, errors: 1, rate: 1802112ms/op
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: id 
must be in format regionId/id
        at 
com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
 ~[guava-16.0.1.jar:na]
        at 
com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
 ~[guava-16.0.1.jar:na]
        at 
com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116) 
~[guava-16.0.1.jar:na]
        at 
org.jclouds.concurrent.FutureIterables$1.run(FutureIterables.java:123) 
~[jclouds-core-1.9.2.jar:1.9.2]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_71]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_71]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
Caused by: java.lang.IllegalArgumentException: id must be in format regionId/id
        at 
com.google.common.base.Preconditions.checkArgument(Preconditions.java:125) 
~[guava-16.0.1.jar:na]
        at 
org.jclouds.openstack.nova.v2_0.domain.regionscoped.RegionAndId.fromSlashEncoded(RegionAndId.java:31)
 ~[openstack-nova-1.9.2-cloudsoft-20160121.jar:1.9.2-cloudsoft-20160121]
        at 
org.jclouds.openstack.nova.v2_0.compute.functions.CleanupServer.apply(CleanupServer.java:66)
 ~[openstack-nova-1.9.2-cloudsoft-20160121.jar:1.9.2-cloudsoft-20160121]
        at 
org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter.destroyNode(NovaComputeServiceAdapter.java:269)
 ~[openstack-nova-1.9.2-cloudsoft-20160121.jar:1.9.2-cloudsoft-20160121]
        at 
org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter.createNodeWithGroupEncodedIntoName(NovaComputeServiceAdapter.java:152)
 ~[openstack-nova-1.9.2-cloudsoft-20160121.jar:1.9.2-cloudsoft-20160121]
        at 
org.jclouds.compute.strategy.impl.AdaptingComputeServiceStrategies.createNodeWithGroupEncodedIntoName(AdaptingComputeServiceStrategies.java:195)
 ~[jclouds-compute-1.9.2.jar:1.9.2]
        at 
org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:79)
 ~[jclouds-compute-1.9.2.jar:1.9.2]
        at 
org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet$AddNode.call(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:63)
 ~[jclouds-compute-1.9.2.jar:1.9.2]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
~[na:1.7.0_71]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_71]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_71]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71]
        at java.lang.Thread.getStackTrace(Thread.java:1589) [na:1.7.0_71]
        at 
org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.createNodeInGroupWithNameAndTemplate(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:167)
 ~[jclouds-compute-1.9.2.jar:1.9.2]
        at 
org.jclouds.openstack.nova.v2_0.compute.strategy.ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.createNodeInGroupWithNameAndTemplate(ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java:161)
 ~[openstack-nova-1.9.2-cloudsoft-20160121.jar:1.9.2-cloudsoft-20160121]
        at 
org.jclouds.compute.strategy.impl.CreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(CreateNodesWithGroupEncodedIntoNameThenAddToSet.java:122)
 ~[jclouds-compute-1.9.2.jar:1.9.2]
        at 
org.jclouds.openstack.nova.v2_0.compute.strategy.ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java:154)
 ~[openstack-nova-1.9.2-cloudsoft-20160121.jar:1.9.2-cloudsoft-20160121]
        at 
org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:210)
 ~[jclouds-compute-1.9.2.jar:1.9.2]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.7.0_71]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
~[na:1.7.0_71]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.7.0_71]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_71]
        at 
com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
 ~[guice-3.0.jar:na]
        at com.sun.proxy.$Proxy115.createNodesInGroup(Unknown Source) ~[na:na]
        at 
org.apache.brooklyn.location.jclouds.JcloudsLocation.obtainOnce(JcloudsLocation.java:732)
 ~[brooklyn-locations-jclouds-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.location.jclouds.JcloudsLocation.obtain(JcloudsLocation.java:622)
 ~[brooklyn-locations-jclouds-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:406)
 ~[brooklyn-software-base-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ObtainLocationTask.call(MachineLifecycleEffectorTasks.java:396)
 ~[brooklyn-software-base-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.util.core.task.Tasks.withBlockingDetails(Tasks.java:98) 
~[brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:380)
 ~[brooklyn-software-base-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.entity.software.base.lifecycle.MachineLifecycleEffectorTasks$ProvisionMachineTask.call(MachineLifecycleEffectorTasks.java:364)
 ~[brooklyn-software-base-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.util.core.task.DynamicSequentialTask$DstJob.call(DynamicSequentialTask.java:359)
 ~[brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at 
org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:519)
 ~[brooklyn-core-0.10.0-SNAPSHOT.jar:0.10.0-SNAPSHOT]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
~[na:1.7.0_71]
        ... 3 common frames omitted
{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to