[ https://issues.apache.org/jira/browse/FLINK-32362?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17733349#comment-17733349 ]
Cai Liuyang commented on FLINK-32362: ------------------------------------- Two ways: # the simple way code like: {code:java} // code placeholder try { for (Integer subtaskId : subTaskIds) { context.sendEventToSourceOperator( subtaskId, new WatermarkAlignmentEvent(maxAllowedWatermark)); } } catch (Throwable ignore) { LOG.warn("Announce the newest combined watermark to source failed, task maybe during failover, wait next time to announce." }{code} # add a trySendEventToSourceOperator(), this method only send when task is ready and not throw exception if task is not ready. i prefer the first one, because it's simple and it can also cover some other exception like rpc timeout > SourceAlignment announceCombinedWatermark period task maybe lost > ---------------------------------------------------------------- > > Key: FLINK-32362 > URL: https://issues.apache.org/jira/browse/FLINK-32362 > Project: Flink > Issue Type: Bug > Affects Versions: 1.16.0 > Reporter: Cai Liuyang > Assignee: Cai Liuyang > Priority: Major > > When we use sourcealignment,we also found there is another problem that > announceCombinedWatermark may throw a exception (like "subtask 25 is not > ready yet to receive events" , this subtask maybe under failover), which will > lead the period task not running any more (ThreadPoolExecutor will not > schedule the period task if it throw a exception) > I think we should increase the robustness of announceCombinedWatermark > function to avoid it throw any exception (if send fail, just wait next send) > (code see > [https://github.com/apache/flink/blob/master/flink-runtime/src/main/java/org/apache/flink/runtime/source/coordinator/SourceCoordinator.java#L199] > ) -- This message was sent by Atlassian Jira (v8.20.10#820010)