From 00e57c07139493bea5ce377c05ac89543951ea7d Mon Sep 17 00:00:00 2001 From: Sateesh Chodapuneedi Date: Wed, 23 Oct 2013 08:51:43 +0530 Subject: [PATCH] CLOUDSTACK-4911 [Mixed Hypervisor] VM Status is marked as alive when exit status of ping command is not available within command timeout Supplementing the fix/commit 748315620bbbc472652e38df960d136beee4882e While remote executing commands through ssh, wait for channel condition of EXIT_STATUS. Signed-off-by: Sateesh Chodapuneedi --- utils/src/com/cloud/utils/ssh/SshHelper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/src/com/cloud/utils/ssh/SshHelper.java b/utils/src/com/cloud/utils/ssh/SshHelper.java index 667b3e3d8da..84d8bc8056f 100755 --- a/utils/src/com/cloud/utils/ssh/SshHelper.java +++ b/utils/src/com/cloud/utils/ssh/SshHelper.java @@ -157,7 +157,7 @@ public class SshHelper { int currentReadBytes = 0; while (true) { if ((stdout.available() == 0) && (stderr.available() == 0)) { - int conditions = sess.waitForCondition(ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA | ChannelCondition.EOF, + int conditions = sess.waitForCondition(ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA | ChannelCondition.EOF | ChannelCondition.EXIT_STATUS, waitResultTimeoutInMs); if ((conditions & ChannelCondition.TIMEOUT) != 0) { @@ -166,7 +166,7 @@ public class SshHelper { throw new Exception(msg); } - if ((conditions & ChannelCondition.EOF) != 0) { + if ((conditions & ChannelCondition.EXIT_STATUS) != 0) { if ((conditions & (ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA)) == 0) { break; }