Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-9557

Error setting processing time timers near end-of-window

Details

    • Bug
    • Status: Resolved
    • P1
    • Resolution: Fixed
    • None
    • 2.20.0
    • runner-core
    • 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.

      Attachments

        Activity

          People

            reuvenlax Reuven Lax
            SteveNiemitz Steve Niemitz
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 7h 20m
                7h 20m