Github user GJL commented on a diff in the pull request:

    https://github.com/apache/flink/pull/5397#discussion_r165298568
  
    --- Diff: 
flink-runtime/src/main/java/org/apache/flink/runtime/taskexecutor/TaskExecutor.java
 ---
    @@ -305,6 +311,84 @@ public void postStop() throws Exception {
        //  RPC methods
        // 
======================================================================
     
    +   @Override
    +   public CompletableFuture<StackTraceSampleResponse> 
requestStackTraceSample(
    +                   final ExecutionAttemptID executionAttemptId,
    +                   final int sampleId,
    +                   final int numSamples,
    +                   final Time delayBetweenSamples,
    +                   final int maxStackTraceDepth,
    +                   final Time timeout) {
    +           return requestStackTraceSample(
    +                   executionAttemptId,
    +                   sampleId,
    +                   numSamples,
    +                   delayBetweenSamples,
    +                   maxStackTraceDepth,
    +                   new ArrayList<>(numSamples),
    +                   new CompletableFuture<>());
    +   }
    +
    +   private CompletableFuture<StackTraceSampleResponse> 
requestStackTraceSample(
    +                   final ExecutionAttemptID executionAttemptId,
    +                   final int sampleId,
    +                   final int numSamples,
    +                   final Time delayBetweenSamples,
    +                   final int maxStackTraceDepth,
    +                   final List<StackTraceElement[]> currentTraces,
    +                   final CompletableFuture<StackTraceSampleResponse> 
resultFuture) {
    +
    +           if (numSamples > 0) {
    +                   getRpcService().getScheduledExecutor().schedule(() -> 
runAsync(() -> {
    +                           final Optional<StackTraceElement[]> stackTrace 
= getStackTrace(executionAttemptId, maxStackTraceDepth);
    --- End diff --
    
    First call to `getStackTrace` should not be delayed. I think it is enough 
to move this line out of the `schedule` call..


---

Reply via email to