-------------------------------------------------------------------------------
Test set: TestSuite
-------------------------------------------------------------------------------
Tests run: 147, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1,995.285 sec <<< FAILURE!
testExtendedOptionsAndLogin(org.jclouds.aws.ec2.compute.AWSEC2ComputeServiceLiveTest)  Time elapsed: 236.375 sec  <<< FAILURE!
org.jclouds.compute.RunScriptOnNodesException: error runScript on filtered nodes options([inboundPorts=[22], privateKey=false, publicKey=false, runScript=false, blockUntilRunning=true, blockOnComplete=true, port:seconds=-1:-1, userMetadata: {}])
Execution failures:
0 error[s]
Node failures:
1) RuntimeException on node us-west-1/i-b31aaaf4:
java.lang.RuntimeException: java.util.concurrent.ExecutionException: org.jclouds.ssh.SshException: (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) error acquiring ExecResponse(command=[./runScriptWithCreds status]): Read timed out
	at com.google.common.base.Throwables.propagate(Throwables.java:156)
	at org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.doCall(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:62)
	at org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSsh.call(RunScriptOnNodeAsInitScriptUsingSsh.java:101)
	at org.jclouds.compute.strategy.RunScriptOnNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(RunScriptOnNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:69)
	at org.jclouds.compute.strategy.RunScriptOnNodeAndAddToGoodMapOrPutExceptionIntoBadMap.call(RunScriptOnNodeAndAddToGoodMapOrPutExceptionIntoBadMap.java:44)
	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: java.util.concurrent.ExecutionException: org.jclouds.ssh.SshException: (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) error acquiring ExecResponse(command=[./runScriptWithCreds status]): Read timed out
	at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:328)
	at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:301)
	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:93)
	at org.jclouds.compute.callables.BlockUntilInitScriptStatusIsZeroThenReturnOutput.get(BlockUntilInitScriptStatusIsZeroThenReturnOutput.java:190)
	at org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.doCall(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:60)
	... 8 more
Caused by: org.jclouds.ssh.SshException: (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) error acquiring ExecResponse(command=[./runScriptWithCreds status]): Read timed out
	at org.jclouds.sshj.SshjSshClient.propagate(SshjSshClient.java:414)
	at org.jclouds.sshj.SshjSshClient.acquire(SshjSshClient.java:231)
	at org.jclouds.sshj.SshjSshClient.exec(SshjSshClient.java:496)
	at org.jclouds.compute.callables.SudoAwareInitManager.runCommand(SudoAwareInitManager.java:103)
	at org.jclouds.compute.callables.SudoAwareInitManager.runAction(SudoAwareInitManager.java:85)
	at org.jclouds.compute.callables.BlockUntilInitScriptStatusIsZeroThenReturnOutput$1.apply(BlockUntilInitScriptStatusIsZeroThenReturnOutput.java:79)
	at org.jclouds.compute.callables.BlockUntilInitScriptStatusIsZeroThenReturnOutput$1.apply(BlockUntilInitScriptStatusIsZeroThenReturnOutput.java:75)
	at org.jclouds.predicates.RetryablePredicate.apply(RetryablePredicate.java:70)
	at org.jclouds.compute.callables.BlockUntilInitScriptStatusIsZeroThenReturnOutput$3.run(BlockUntilInitScriptStatusIsZeroThenReturnOutput.java:113)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	... 5 more
Caused by: net.schmizz.sshj.connection.ConnectionException: Read timed out
	at net.schmizz.sshj.connection.ConnectionException$1.chain(ConnectionException.java:32)
	at net.schmizz.sshj.connection.ConnectionException$1.chain(ConnectionException.java:26)
	at net.schmizz.concurrent.Promise.deliverError(Promise.java:95)
	at net.schmizz.concurrent.Event.deliverError(Event.java:72)
	at net.schmizz.concurrent.ErrorDeliveryUtil.alertEvents(ErrorDeliveryUtil.java:34)
	at net.schmizz.sshj.connection.channel.AbstractChannel.notifyError(AbstractChannel.java:239)
	at net.schmizz.sshj.connection.channel.direct.SessionChannel.notifyError(SessionChannel.java:250)
	at net.schmizz.sshj.common.ErrorNotifiable$Util.alertAll(ErrorNotifiable.java:35)
	at net.schmizz.sshj.connection.ConnectionImpl.notifyError(ConnectionImpl.java:250)
	at net.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:578)
	at net.schmizz.sshj.transport.Reader.run(Reader.java:79)
Caused by: net.schmizz.sshj.common.SSHException: Read timed out
	at net.schmizz.sshj.common.SSHException$1.chain(SSHException.java:56)
	at net.schmizz.sshj.common.SSHException$1.chain(SSHException.java:49)
	at net.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:572)
	... 1 more
Caused by: java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at net.schmizz.sshj.transport.Reader.run(Reader.java:68)
1 error[s]
	at org.jclouds.compute.internal.BaseComputeService.runScriptOnNodesMatching(BaseComputeService.java:570)
	at org.jclouds.compute.BaseComputeServiceLiveTest.runScriptWithCreds(BaseComputeServiceLiveTest.java:454)
	at org.jclouds.aws.ec2.compute.AWSEC2ComputeServiceLiveTest.testExtendedOptionsAndLogin(AWSEC2ComputeServiceLiveTest.java:175)
	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:76)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:673)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:846)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1170)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
	at org.testng.TestRunner.runWorkers(TestRunner.java:1147)
	at org.testng.TestRunner.privateRun(TestRunner.java:749)
	at org.testng.TestRunner.run(TestRunner.java:600)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:34)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:351)
	at org.testng.internal.thread.ThreadUtil$CountDownLatchedRunnable.run(ThreadUtil.java:147)
	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: java.util.concurrent.ExecutionException: org.jclouds.ssh.SshException: (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) error acquiring ExecResponse(command=[./runScriptWithCreds status]): Read timed out
	at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:328)
	at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:301)
	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:93)
	at org.jclouds.compute.callables.BlockUntilInitScriptStatusIsZeroThenReturnOutput.get(BlockUntilInitScriptStatusIsZeroThenReturnOutput.java:190)
	at org.jclouds.compute.callables.RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.doCall(RunScriptOnNodeAsInitScriptUsingSshAndBlockUntilComplete.java:60)
	... 8 more
Caused by: org.jclouds.ssh.SshException: (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) (ubuntu:rsa[fingerprint(d3:e3:e3:77:6d:45:53:c8:8c:1d:16:df:46:7b:13:4a),sha1(3a:45:0a:c2:69:c5:cf:bd:6c:a9:29:3a:81:b1:af:68:2c:cc:6e:2e)]@50.18.75.30:22) error acquiring ExecResponse(command=[./runScriptWithCreds status]): Read timed out
	at org.jclouds.sshj.SshjSshClient.propagate(SshjSshClient.java:414)
	at org.jclouds.sshj.SshjSshClient.acquire(SshjSshClient.java:231)
	at org.jclouds.sshj.SshjSshClient.exec(SshjSshClient.java:496)
	at org.jclouds.compute.callables.SudoAwareInitManager.runCommand(SudoAwareInitManager.java:103)
	at org.jclouds.compute.callables.SudoAwareInitManager.runAction(SudoAwareInitManager.java:85)
	at org.jclouds.compute.callables.BlockUntilInitScriptStatusIsZeroThenReturnOutput$1.apply(BlockUntilInitScriptStatusIsZeroThenReturnOutput.java:79)
	at org.jclouds.compute.callables.BlockUntilInitScriptStatusIsZeroThenReturnOutput$1.apply(BlockUntilInitScriptStatusIsZeroThenReturnOutput.java:75)
	at org.jclouds.predicates.RetryablePredicate.apply(RetryablePredicate.java:70)
	at org.jclouds.compute.callables.BlockUntilInitScriptStatusIsZeroThenReturnOutput$3.run(BlockUntilInitScriptStatusIsZeroThenReturnOutput.java:113)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	... 5 more
Caused by: net.schmizz.sshj.connection.ConnectionException: Read timed out
	at net.schmizz.sshj.connection.ConnectionException$1.chain(ConnectionException.java:32)
	at net.schmizz.sshj.connection.ConnectionException$1.chain(ConnectionException.java:26)
	at net.schmizz.concurrent.Promise.deliverError(Promise.java:95)
	at net.schmizz.concurrent.Event.deliverError(Event.java:72)
	at net.schmizz.concurrent.ErrorDeliveryUtil.alertEvents(ErrorDeliveryUtil.java:34)
	at net.schmizz.sshj.connection.channel.AbstractChannel.notifyError(AbstractChannel.java:239)
	at net.schmizz.sshj.connection.channel.direct.SessionChannel.notifyError(SessionChannel.java:250)
	at net.schmizz.sshj.common.ErrorNotifiable$Util.alertAll(ErrorNotifiable.java:35)
	at net.schmizz.sshj.connection.ConnectionImpl.notifyError(ConnectionImpl.java:250)
	at net.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:578)
	at net.schmizz.sshj.transport.Reader.run(Reader.java:79)
Caused by: net.schmizz.sshj.common.SSHException: Read timed out
	at net.schmizz.sshj.common.SSHException$1.chain(SSHException.java:56)
	at net.schmizz.sshj.common.SSHException$1.chain(SSHException.java:49)
	at net.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:572)
	... 1 more
Caused by: java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at net.schmizz.sshj.transport.Reader.run(Reader.java:68)
1 error[s]
	at org.jclouds.compute.internal.BaseComputeService.runScriptOnNodesMatching(BaseComputeService.java:570)
	at org.jclouds.compute.BaseComputeServiceLiveTest.runScriptWithCreds(BaseComputeServiceLiveTest.java:454)
	at org.jclouds.aws.ec2.compute.AWSEC2ComputeServiceLiveTest.testExtendedOptionsAndLogin(AWSEC2ComputeServiceLiveTest.java:175)
	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:76)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:673)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:846)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1170)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
	at org.testng.TestRunner.runWorkers(TestRunner.java:1147)
	at org.testng.TestRunner.privateRun(TestRunner.java:749)
	at org.testng.TestRunner.run(TestRunner.java:600)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
	at org.testng.SuiteRunner.access$000(SuiteRunner.java:34)
	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:351)
	at org.testng.internal.thread.ThreadUtil$CountDownLatchedRunnable.run(ThreadUtil.java:147)
	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)

