beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kenneth Knowles (JIRA)" <>
Subject [jira] [Resolved] (BEAM-3332) AfterProcessingTimer trigger not firing if invoked exactly on time
Date Thu, 25 Jan 2018 19:16:00 GMT


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:
>             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

View raw message