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.


---

Reply via email to