Skip to content

Conversation

@tkan145
Copy link
Contributor

@tkan145 tkan145 commented Jul 9, 2024

Backport #1468

@tkan145 tkan145 requested a review from a team as a code owner July 9, 2024 03:27
…sabled

Details of the issue as well as local reproducers are documented in 3scale#1467.

This change ensures that when `boot.init_worker` checks to see whether or not
the configuration needs to be reloaded, it also checks to confirm that the `boot.ttl()`
value set from `APICAST_CONFIGURATION_CACHE` is a positive number, in order to avoid
an immediate and infinite recursive loop of refreshing the configuration.

This should still preserve the initial fix [1] where this regression appears to
have been introduced, as we should never schedule reloading with the configuration settings of:

```
APICAST_CONFIGURATION_LOADER: boot
APICAST_CONFIGURATION_CACHE: -1
```

We should also never have a situation where we'd need to account for `interval = 0`
since we fail out in `boot.init` in that case [2].

Tested locally as documented in the issue, however based on the comment in the initial
fix PR, I've not added any tests in code. Happy to do so if there's now a good way
to accomplish that!

[1] 3scale#1399
[2] https://github.com/3scale/APIcast/blob/7e7eaf6f1d584c78d999c0d09f5b65203161c402/gateway/src/apicast/configuration_loader.lua#L146-L149
Simplifies the conditional to reload configuration based on the interval set by
`APICAST_CONFIGURATION_CACHE`.

Also conditionally sets the interval to schedule.
@tkan145 tkan145 merged commit 0eb5ecb into 3scale:3scale-2.15-stable Jul 11, 2024
@tkan145 tkan145 deleted the backport-1468 branch July 11, 2024 03:24
@tkan145 tkan145 restored the backport-1468 branch June 10, 2025 02:32
@tkan145 tkan145 deleted the backport-1468 branch June 10, 2025 02:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants