Details
-
Bug
-
Status: Resolved
-
P1
-
Resolution: Fixed
-
None
-
None
Description
Previously, it was possible to set a processing time timer past the end of a window, and it would simply not fire.
However, now, this results in an error:
java.lang.IllegalArgumentException: Attempted to set event time timer that outputs for 2020-03-19T18:01:35.000Z but that is after the expiration of window 2020-03-19T17:59:59.999Z
org.apache.beam.vendor.guava.v26_0_jre.com.google.common.base.Preconditions.checkArgument(Preconditions.java:440)
org.apache.beam.runners.dataflow.worker.repackaged.org.apache.beam.runners.core.SimpleDoFnRunner$TimerInternalsTimer.setAndVerifyOutputTimestamp(SimpleDoFnRunner.java:1011)
org.apache.beam.runners.dataflow.worker.repackaged.org.apache.beam.runners.core.SimpleDoFnRunner$TimerInternalsTimer.setRelative(SimpleDoFnRunner.java:934)
<snip>.processElement(???.scala:187)
I think the regression was introduced in commit a005fd765a762183ca88df90f261f6d4a20cf3e0. Also notice that the error message is wrong, it says that "event time timer" but the timer is in the processing time domain.