-------------------------------------------------------------------------------
Test set: TestSuite
-------------------------------------------------------------------------------
Tests run: 131, Failures: 1, Errors: 0, Skipped: 9, Time elapsed: 828.936 sec <<< FAILURE!
testConcurrentUseOfComputeServiceToCreateNodes(org.jclouds.elastichosts.compute.ElasticHostsPeer1LondonComputeServiceLiveTest)  Time elapsed: 350.495 sec  <<< FAILURE!
java.util.concurrent.ExecutionException: org.jclouds.compute.RunNodesException: error running 1 node group(twin1) location(elastichosts-lon-p) image(24ea9dad-f014-4836-bcb0-f03184c74e7a) size(cpu=1000.000000,ram=512,disk=1.000000) options({blockOnPort:seconds=22:301, inboundPorts=[22, 8080]})
Execution failures:
0 error[s]
Node failures:
1) NoSuchElementException on node 940cb4b4-2796-4f0e-80ff-d7782ca415d3:
java.util.NoSuchElementException: could not connect to any ip address port 22 on node {id=940cb4b4-2796-4f0e-80ff-d7782ca415d3, providerId=940cb4b4-2796-4f0e-80ff-d7782ca415d3, name=twin1-974, location={scope=PROVIDER, id=elastichosts-lon-p, description=https://api-lon-p.elastichosts.com, iso3166Codes=[GB-LND]}, group=twin1, os={family=ubuntu, name=Ubuntu Linux 11.10, version=11.10, description=OLD img/Ubuntu Linux 11.10/1, is64Bit=true}, status=RUNNING, loginPort=22, publicAddresses=[83.222.241.116], hardware={id=940cb4b4-2796-4f0e-80ff-d7782ca415d3, providerId=940cb4b4-2796-4f0e-80ff-d7782ca415d3, processors=[{cores=1.0, speed=1000.0}], ram=512, volumes=[{type=NAS, bootDevice=false, durable=true}], hypervisor=kvm, supportsImage=ALWAYS_TRUE}, loginUser=toor}
	at org.jclouds.compute.util.ConcurrentOpenSocketFinder.findOpenSocketOnNode(ConcurrentOpenSocketFinder.java:98)
	at org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:168)
	at org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.apply(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:184)
	at org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.apply(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:60)
	at com.google.common.util.concurrent.Futures$3.apply(Futures.java:376)
	at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:518)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
1 error[s]
	at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:294)
	at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:267)
	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:96)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest.testConcurrentUseOfComputeServiceToCreateNodes(BaseComputeServiceLiveTest.java:444)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:702)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:894)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1219)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:768)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:37)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:368)
	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
Caused by: org.jclouds.compute.RunNodesException: error running 1 node group(twin1) location(elastichosts-lon-p) image(24ea9dad-f014-4836-bcb0-f03184c74e7a) size(cpu=1000.000000,ram=512,disk=1.000000) options({blockOnPort:seconds=22:301, inboundPorts=[22, 8080]})
Execution failures:
0 error[s]
Node failures:
1) NoSuchElementException on node 940cb4b4-2796-4f0e-80ff-d7782ca415d3:
java.util.NoSuchElementException: could not connect to any ip address port 22 on node {id=940cb4b4-2796-4f0e-80ff-d7782ca415d3, providerId=940cb4b4-2796-4f0e-80ff-d7782ca415d3, name=twin1-974, location={scope=PROVIDER, id=elastichosts-lon-p, description=https://api-lon-p.elastichosts.com, iso3166Codes=[GB-LND]}, group=twin1, os={family=ubuntu, name=Ubuntu Linux 11.10, version=11.10, description=OLD img/Ubuntu Linux 11.10/1, is64Bit=true}, status=RUNNING, loginPort=22, publicAddresses=[83.222.241.116], hardware={id=940cb4b4-2796-4f0e-80ff-d7782ca415d3, providerId=940cb4b4-2796-4f0e-80ff-d7782ca415d3, processors=[{cores=1.0, speed=1000.0}], ram=512, volumes=[{type=NAS, bootDevice=false, durable=true}], hypervisor=kvm, supportsImage=ALWAYS_TRUE}, loginUser=toor}
	at org.jclouds.compute.util.ConcurrentOpenSocketFinder.findOpenSocketOnNode(ConcurrentOpenSocketFinder.java:98)
	at org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:168)
	at org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.apply(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:184)
	at org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.apply(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:60)
	at com.google.common.util.concurrent.Futures$3.apply(Futures.java:376)
	at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:518)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
1 error[s]
	at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:221)
	at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:229)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest$1.call(BaseComputeServiceLiveTest.java:434)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest$1.call(BaseComputeServiceLiveTest.java:432)
	... 5 more
Caused by: org.jclouds.compute.RunNodesException: error running 1 node group(twin1) location(elastichosts-lon-p) image(24ea9dad-f014-4836-bcb0-f03184c74e7a) size(cpu=1000.000000,ram=512,disk=1.000000) options({blockOnPort:seconds=22:301, inboundPorts=[22, 8080]})
Execution failures:
0 error[s]
Node failures:
1) NoSuchElementException on node 940cb4b4-2796-4f0e-80ff-d7782ca415d3:
java.util.NoSuchElementException: could not connect to any ip address port 22 on node {id=940cb4b4-2796-4f0e-80ff-d7782ca415d3, providerId=940cb4b4-2796-4f0e-80ff-d7782ca415d3, name=twin1-974, location={scope=PROVIDER, id=elastichosts-lon-p, description=https://api-lon-p.elastichosts.com, iso3166Codes=[GB-LND]}, group=twin1, os={family=ubuntu, name=Ubuntu Linux 11.10, version=11.10, description=OLD img/Ubuntu Linux 11.10/1, is64Bit=true}, status=RUNNING, loginPort=22, publicAddresses=[83.222.241.116], hardware={id=940cb4b4-2796-4f0e-80ff-d7782ca415d3, providerId=940cb4b4-2796-4f0e-80ff-d7782ca415d3, processors=[{cores=1.0, speed=1000.0}], ram=512, volumes=[{type=NAS, bootDevice=false, durable=true}], hypervisor=kvm, supportsImage=ALWAYS_TRUE}, loginUser=toor}
	at org.jclouds.compute.util.ConcurrentOpenSocketFinder.findOpenSocketOnNode(ConcurrentOpenSocketFinder.java:98)
	at org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:168)
	at org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.apply(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:184)
	at org.jclouds.compute.strategy.CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.apply(CustomizeNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:60)
	at com.google.common.util.concurrent.Futures$3.apply(Futures.java:376)
	at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:518)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
1 error[s]
	at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:221)
	at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:229)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest$1.call(BaseComputeServiceLiveTest.java:434)
	at org.jclouds.compute.internal.BaseComputeServiceLiveTest$1.call(BaseComputeServiceLiveTest.java:432)
	... 5 more
