[ https://issues.apache.org/jira/browse/FLINK-6958?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16059106#comment-16059106 ]
Jark Wu commented on FLINK-6958: -------------------------------- I have dug into this issue. When the source is a bounded source, such as {{env.fromCollection}} , and the {{AsyncFunction}} do nothing. The async i/o operator will hang on the {{close()}} method to wait the pending element queue finished. The reason is that we register the timeout timer using {{ProcessingTimeService}}. The source complete very soon, and then the AsyncOperator exit the {{run()}} block and call {{quiesceAndAwaitPending}} on the TimeService. But we remove all pending timers in it , because we set the policy: {{timeService.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);}}. That's why all the pending element will never complete and result in the dead lock. [~till.rohrmann] Why do we remove all the pending timers ? Can we set the policy to true? > Async I/O timeout not work > -------------------------- > > Key: FLINK-6958 > URL: https://issues.apache.org/jira/browse/FLINK-6958 > Project: Flink > Issue Type: Bug > Components: Streaming > Affects Versions: 1.2.1 > Reporter: feng xiaojie > > when use Async I/O with UnorderedStreamElementQueue, the queue will always > full if you don't call the AsyncCollector.collect to ack them. > Timeout shall collect these entries when the timeout trigger,but it isn't work > I debug find, > when time out, it will call resultFuture.completeExceptionally(error); > but not call UnorderedStreamElementQueue.onCompleteHandler > it will cause that async i/o hang always -- This message was sent by Atlassian JIRA (v6.4.14#64029)