From 44d28f19942450074a2935c3871f55a9f8a60842 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Fri, 6 Mar 2020 13:30:53 +0530 Subject: [PATCH] utils: handle EOFException during VR Health Check (#3919) VR health check throws EOFException due to malformed/Invalid JSON. Fixes #3893 Co-authored-by: Pearl Dsilva --- .../router/VirtualNetworkApplianceManagerImpl.java | 1 - .../src/main/java/com/cloud/utils/ssh/SshHelper.java | 12 +++--------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 65d6b85d66d..b092489b8bf 100644 --- a/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/main/java/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -1531,7 +1531,6 @@ Configurable, StateListener 0) { - currentReadBytes = stdout.read(buffer); - sbResult.append(new String(buffer, 0, currentReadBytes)); + while((currentReadBytes = stdout.read(buffer)) != -1) { + sbResult.append(new String(buffer, 0 , currentReadBytes)); } - while (stderr.available() > 0) { - currentReadBytes = stderr.read(buffer); + while((currentReadBytes = stderr.read(buffer)) != -1) { sbResult.append(new String(buffer, 0, currentReadBytes)); } } String result = sbResult.toString(); - if (StringUtils.isBlank(result)) { try { result = IOUtils.toString(stdout, StandardCharsets.UTF_8); @@ -243,7 +238,6 @@ public class SshHelper { s_logger.error(String.format("SSH execution of command %s has an error status code in return. Result output: %s", command, result)); return new Pair(false, result); } - return new Pair(true, result); } finally { if (sess != null)