nic-6443 opened a new pull request, #12523:
URL: https://github.com/apache/apisix/pull/12523

   ### Description
   
   When using etcd as the config server, the apisix master process performs a 
full data load during the init phase and saves the result in 
`loaded_configuration`. After the master forks other worker processes, these 
worker processes will directly initialize configurations based on 
`loaded_configuration`:
   
https://github.com/apache/apisix/blob/1b0bb84ccf343bd1aedc4bfff1afa9fcefb7c4d5/apisix/core/config_etcd.lua#L1023-L1031
   Since `loaded_configuration` in the master process is not continuously 
updated, after running for some time, `loaded_configuration` may become 
outdated. If a worker restarts at this point (e.g., executing `apisix reload` 
or crash), it will use an outdated configuration for initialization. If any 
requests are sent to this worker at that time, these requests may be processed 
by incorrect confiurations.
   
   #### Which issue(s) this PR fixes:
   <!--
   *Automatically closes linked issue when PR is merged.
   Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
   -->
   Fixes #
   
   ### Checklist
   
   - [ ] I have explained the need for this PR and the problem it solves
   - [ ] I have explained the changes or the new features added to this PR
   - [ ] I have added tests corresponding to this change
   - [ ] I have updated the documentation to reflect this change
   - [ ] I have verified that this change is backward compatible (If not, 
please discuss on the [APISIX mailing 
list](https://github.com/apache/apisix/tree/master#community) first)
   
   <!--
   
   Note
   
   1. Mark the PR as draft until it's ready to be reviewed.
   2. Always add/update tests for any changes unless you have a good reason.
   3. Always update the documentation to reflect the changes made in the PR.
   4. Make a new commit to resolve conversations instead of `push -f`.
   5. To resolve merge conflicts, merge master instead of rebasing.
   6. Use "request review" to notify the reviewer after making changes.
   7. Only a reviewer can mark a conversation as resolved.
   
   -->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@apisix.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to