[
https://issues.apache.org/jira/browse/FLINK-20752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Till Rohrmann updated FLINK-20752:
----------------------------------
Fix Version/s: 1.12.3
1.11.4
> FailureRateRestartBackoffTimeStrategy allows one less restart than configured
> -----------------------------------------------------------------------------
>
> Key: FLINK-20752
> URL: https://issues.apache.org/jira/browse/FLINK-20752
> Project: Flink
> Issue Type: Bug
> Components: Runtime / Coordination
> Affects Versions: 1.10.0
> Reporter: Chesnay Schepler
> Assignee: Chesnay Schepler
> Priority: Minor
> Labels: pull-request-available
> Fix For: 1.11.4, 1.13.0, 1.12.3
>
>
> The {{FailureRateRestartBackoffTimeStrategy}} maintains a list of failure
> timestamps, keeping N timestamps where N is the configured of failures per
> interval.
> The timestamp is added when #notifyFailure() is called, and later evaluated
> within #canRestart().
> To determine whether a restart should be allowed we first check whether we
> are already storing N timestamps, and if so check whether the earliest
> failure still falls within the current interval. If it does, we reject the
> restart.
> The problem is that we check whether we have already stored exactly N
> timestamps. If we have exactly N timestamps, and we allow N failures per
> interval, then we should not reject the restart by definition. We should
> instead be checking whether N+1 timestamps have been stored.
> For example, let's say we allow 2 exceptions, and 2 have occurred so far.
> Regardless of what the timestamps are, we should still allow a restart in
> this case.
> Only once a third exception occurs should we be looking at the timestamps,
> and we should furthermore only look at the exception exceeding the allowed
> failure count; in this example it is the very first exception.
> I don't know why this went unnoticed for so long; the relevant tests fail
> rather reliably for me locally.
> ({{FailureRateRestartBackoffTimeStrategyTest}},
> {{SimpleRecoveryFailureRateStrategyITBase}})
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)