Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(runloop) reschedule rebuild timers after running them #8634

Merged
merged 2 commits into from
Apr 4, 2022

Conversation

locao
Copy link
Contributor

@locao locao commented Apr 4, 2022

Summary

This is a backport of #8567 that is merged into master.

Router and plugin iterator rebuild timers were scheduled using ngx.timer.every. If the rebuild processes took longer than worker_state_update_frequency to execute, they would start again while the previous one was still running.

Full changelog

Change ngx.timer.every calls to ngx.timer.at.
Previously returned error "plugins iterator was changed while rebuilding it" is now logged as an info message.
No tests were added, the behavior is the same as before.

Issue reference

There were multiple reports of "plugins iterator was changed while rebuilding it" logged as error.

Fix #8525

FTI-3239

@locao locao added this to the 2.8.1 milestone Apr 4, 2022
@tyler-ball tyler-ball merged commit c4cb763 into release/2.8.x Apr 4, 2022
@tyler-ball tyler-ball deleted the fix/runloop_timer_rescheduling_28x branch April 4, 2022 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants