[
https://issues.apache.org/jira/browse/BEAM-3332?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kenneth Knowles resolved BEAM-3332.
-----------------------------------
Resolution: Not A Bug
Fix Version/s: Not applicable
I am going to close as "Not a Bug" because I think that it works as it is
supposed to, and the problem is the underlying timer delivery (the timers show
up too early and have no effect). We could warn or throw in some cases if a
timer is delivered before it should, but so far we wanted to be very flexible
and resilient to that.
> AfterProcessingTimer trigger not firing if invoked exactly on time
> ------------------------------------------------------------------
>
> Key: BEAM-3332
> URL: https://issues.apache.org/jira/browse/BEAM-3332
> Project: Beam
> Issue Type: Bug
> Components: runner-core
> Affects Versions: 2.0.0, 2.1.0, 2.2.0
> Reporter: Shen Li
> Assignee: Shen Li
> Priority: Major
> Fix For: Not applicable
>
>
> I occasionally run into an issue that the processing time trigger is invoked
> on time, but the TriggerStateMachienRunner#shouldFire() returns false. After
> comparing time instances, I found that this issue occurs when the trigger is
> invoked exactly on time. It is because the
> AfterDelayFromFirstElementStateMachine does the following:
> {quote} return delayedUntil != null
> && getCurrentTime(context) != null
> && getCurrentTime(context).isAfter(delayedUntil);{quote}
> which only returns true when the current processing time is AFTER (exclude
> equals) delayUntil. Should it actually be
> !getCurrentTime(context).isBefore(delayedUntil) ?
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)