Skip to content

Commit

Permalink
fix: wait for output reading to complete before parsing version
Browse files Browse the repository at this point in the history
NodeInstall.getVersion currently does not block waiting for STDOUT and STDERR
to be read completely. This causes random failure during node
installation because of forcing an empty version.
This change waits for future to complete before parsing the version
value.
  • Loading branch information
mcollovati committed Sep 10, 2024
1 parent 739c92e commit 9de36ed
Showing 1 changed file with 9 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
Expand Down Expand Up @@ -559,8 +560,14 @@ private static FrontendVersion getVersion(String tool,
throw new IOException("Process exited with non 0 exit code. ("
+ exitCode + ")");
}
return FrontendUtils.parseFrontendVersion(
streamConsumer.getNow(new Pair<>("", "")).getFirst());
String version;
try {
version = streamConsumer.get().getFirst();
} catch (ExecutionException e) {
getLogger().debug("Cannot read {} version", tool, e);
version = "";
}
return FrontendUtils.parseFrontendVersion(version);
} catch (InterruptedException | IOException e) {
throw new InstallationException(String.format(
"Unable to detect version of %s. %s", tool,
Expand Down

0 comments on commit 9de36ed

Please sign in to comment.