[ https://issues.apache.org/jira/browse/FLINK-14304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17478503#comment-17478503 ]
Bo Cui commented on FLINK-14304: -------------------------------- hi [~arvid] why add the condition? https://github.com/apache/flink/blob/6512214cb3d5774ae40c8ccae8785a48dc868e2b/flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/tasks/mailbox/TaskMailboxImpl.java#L260 > Avoid task starvation with mailbox > ---------------------------------- > > Key: FLINK-14304 > URL: https://issues.apache.org/jira/browse/FLINK-14304 > Project: Flink > Issue Type: Improvement > Components: Runtime / Task > Reporter: Arvid Heise > Assignee: Arvid Heise > Priority: Major > Labels: pull-request-available > Fix For: 1.10.0 > > Time Spent: 20m > Remaining Estimate: 0h > > Currently, all mails are always prioritized over regular input, which makes > sense in most cases. However, it's easy to devise an operator that gets into > starvation: each mail enqueues a new mail. > This ticket implements a simple extension in the mailbox processor: instead > of draining the mailbox one-by-one, fetch all mails from the mailbox and run > them one-by-one before running the default action. Only then, fetch all mails > again and repeat. > So we execute all mails that are available at the start of this loop but no > mails that are added in the meantime. > Special attention needs to be directed towards yield to downstream, such that > it doesn't process mails outside of the current batch. -- This message was sent by Atlassian Jira (v8.20.1#820001)