[
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)