Github user GJL commented on a diff in the pull request: https://github.com/apache/flink/pull/5312#discussion_r162413303 --- Diff: flink-runtime/src/main/java/org/apache/flink/runtime/rest/RestClient.java --- @@ -251,6 +245,12 @@ protected void channelRead0(ChannelHandlerContext ctx, Object msg) { ctx.close(); } + @Override + public void exceptionCaught(final ChannelHandlerContext ctx, final Throwable cause) throws Exception { + jsonFuture.completeExceptionally(cause); --- End diff -- Without this, the `CliFrontend` can block indefintely for some operations. For example: ``` CompletableFuture<Collection<JobStatusMessage>> jobDetailsFuture = clusterClient.listJobs(); logAndSysout("Waiting for response..."); jobDetails = jobDetailsFuture.get(); ``` This way, the exception gets propagated to the client.
---