[ https://issues.apache.org/jira/browse/FLINK-6958?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16062984#comment-16062984 ]
Till Rohrmann commented on FLINK-6958: -------------------------------------- Ah I see. So the problem is that we first call {{TimeService#quiesceAndAwaitPending}} at {{StreamTask.java:274}}, which cancels all registered timer tasks, before closing the operators in {{StreamTask.java:287}}. I think the underlying problem is that the operator uses a component, the {{ProcessingTimeService}}, which is closed/quiesced before the lifetime of the operator has ended (by calling {{StreamOperator#close}}). This is done because we have in other operators the assumption that no timer tasks are triggered when the operator is being closed. A solution could be to introduce the same timeout for the {{AsyncWaitOperator#close}} operation ({{AsyncWaitOperator.java:280-284}}) which will fail all remaining {{StreamElementQueueEntries}} after the timeout. > 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 > Assignee: Jark Wu > > 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)