[
https://issues.apache.org/jira/browse/BEAM-7112?focusedWorklogId=232775&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-232775
]
ASF GitHub Bot logged work on BEAM-7112:
----------------------------------------
Author: ASF GitHub Bot
Created on: 25/Apr/19 11:53
Start Date: 25/Apr/19 11:53
Worklog Time Spent: 10m
Work Description: mxm commented on pull request #8399: [BEAM-7112] Timer
race with state cleanup - take two
URL: https://github.com/apache/beam/pull/8399#discussion_r278505066
##########
File path:
runners/flink/src/test/java/org/apache/beam/runners/flink/translation/wrappers/streaming/ExecutableStageDoFnOperatorTest.java
##########
@@ -449,6 +466,92 @@ public void
testEnsureStateCleanupWithKeyedInputStateCleaner() throws Exception
}
}
+ @Test
+ public void testStateCleanup() throws Exception {
+ TupleTag<Integer> mainOutput = new TupleTag<>("main-output");
+ DoFnOperator.MultiOutputOutputManagerFactory<Integer> outputManagerFactory
=
+ new DoFnOperator.MultiOutputOutputManagerFactory(mainOutput,
VoidCoder.of());
+ StringUtf8Coder keyCoder = StringUtf8Coder.of();
+
+ WindowingStrategy windowingStrategy =
+ WindowingStrategy.of(FixedWindows.of(Duration.millis(1000)));
+
+ ExecutableStageDoFnOperator<Integer, Integer> operator =
+ getOperator(
+ mainOutput, Collections.emptyList(), outputManagerFactory,
windowingStrategy, keyCoder);
+
+ @SuppressWarnings("unchecked")
+ RemoteBundle bundle = Mockito.mock(RemoteBundle.class);
+ when(stageBundleFactory.getBundle(any(), any(), any())).thenReturn(bundle);
+
+ String timerInputId = "timerInput";
+ AtomicBoolean timerInputReceived = new AtomicBoolean();
+ Instant windowEnd = new Instant(1000);
Review comment:
End of window is `windowEnd - 1` because the end if not inclusive. See
`IntervalWindow`.
I'd suggest removing this variable and using `window.maxTimestamp()` instead
to track the end of the window.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 232775)
Time Spent: 4h 50m (was: 4h 40m)
> State cleanup interferes with user timer callback
> -------------------------------------------------
>
> Key: BEAM-7112
> URL: https://issues.apache.org/jira/browse/BEAM-7112
> Project: Beam
> Issue Type: Bug
> Components: runner-flink
> Affects Versions: 2.12.0
> Reporter: Thomas Weise
> Assignee: Thomas Weise
> Priority: Major
> Labels: portability-flink
> Fix For: 2.13.0
>
> Time Spent: 4h 50m
> Remaining Estimate: 0h
>
> Cleanup timers and user timers are fired at the watermark. Processing of
> timers in the SDK worker is asynchronous, so it is possible that the state is
> already removed when the user timer callback executes.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)