XComp commented on code in PR #28555:
URL: https://github.com/apache/flink/pull/28555#discussion_r3503922033
##########
flink-runtime/src/test/java/org/apache/flink/runtime/executiongraph/DefaultExecutionGraphDeploymentTest.java:
##########
@@ -403,6 +404,106 @@ void testAccumulatorsAndMetricsStorage() throws Exception
{
assertThat(execution2.getUserAccumulators()).isEqualTo(accumulators);
}
+ @Test
+ void testMetricsVisibleToListenersOnMarkFinished() throws Exception {
+ testMetricsVisibleToListenersDuringTerminalTransition(
+ (execution, accumulators, metrics) -> {
+ // markFinished() only transitions from a running state.
+ execution.transitionState(ExecutionState.RUNNING);
+ execution.markFinished(accumulators, metrics);
+ });
+ }
+
+ @Test
+ void testMetricsVisibleToListenersOnMarkFailed() throws Exception {
+ testMetricsVisibleToListenersDuringTerminalTransition(
+ (execution, accumulators, metrics) ->
+ // fromSchedulerNg=true to reach the FAILED transition.
+ execution.markFailed(
+ new Exception("test failure"),
+ false,
+ accumulators,
+ metrics,
+ false,
+ true));
+ }
+
+ @Test
+ void testMetricsVisibleToListenersOnCompleteCancelling() throws Exception {
+ testMetricsVisibleToListenersDuringTerminalTransition(
+ (execution, accumulators, metrics) -> {
+ // completeCancelling() transitions from CANCELING to
CANCELED.
+ execution.cancel();
+ execution.completeCancelling(accumulators, metrics, true);
+ });
+ }
+
+ @Test
+ void testMetricsVisibleToListenersOnRecoverExecution() throws Exception {
+ testMetricsVisibleToListenersDuringTerminalTransition(
+ (execution, accumulators, metrics) ->
+ // recoverExecution() transitions directly to FINISHED
during JM failover
+ // recovery.
+ execution.recoverExecution(
+ execution.getAttemptId(),
+ new LocalTaskManagerLocation(),
+ accumulators,
+ metrics));
+ }
+
+ /**
+ * Verifies that IOMetrics and user accumulators are visible to {@link
+ * ExecutionStateUpdateListener}s at the time they are notified of a
terminal state transition.
+ */
+ private void testMetricsVisibleToListenersDuringTerminalTransition(
+ TerminalStateTransition terminalStateTransition) throws Exception {
Review Comment:
nit: You could have used `TriConsumer` here instead of introducing another
interface. But, I guess, it's ok because it's test class local
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]