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 #8567

Merged
merged 2 commits into from
Mar 23, 2022

Conversation

locao
Copy link
Contributor

@locao locao commented Mar 22, 2022

Summary

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 force-pushed the fix/runloop_timer_rescheduling branch from 0ee168d to e15a47c Compare March 22, 2022 13:59
@locao locao force-pushed the fix/runloop_timer_rescheduling branch from e15a47c to c9590b8 Compare March 23, 2022 20:20
@locao locao force-pushed the fix/runloop_timer_rescheduling branch from c9590b8 to 3d3f89b Compare March 23, 2022 20:21
@locao locao merged commit d931867 into master Mar 23, 2022
@locao locao deleted the fix/runloop_timer_rescheduling branch March 23, 2022 20:22
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.

could not rebuild plugins iterator
2 participants