grapestore opened a new pull request, #12987:
URL: https://github.com/apache/apisix/pull/12987

   ### Description
   
   This PR fixes an issue where the healthchecker was not created due to a 
version mismatch,
   causing health checks for DNS-based upstreams to not work.
   
   The mismatch occurred because `parse_domain_in_up()` modified 
`modifiedIndex` in memory,
   while `_nodes_ver` was not persisted in the config.
   As a result, `fetch_checker` and `healthcheck_manager` calculated different 
versions for the same upstream.
   
   #### How to reproduce
   1. Configure an upstream with two DNS-based nodes.
   2. Enable active and passive health checks.
   3. Start APISIX.
   
   Both active and passive health checks do not work because the healthchecker 
is not created.
   
   This PR ensures that:
   - `modifiedIndex` remains unchanged
   - `_nodes_ver` is set with a timestamp when nodes are updated
   - `_nodes_ver` and updated nodes are persisted to the config
   
   With these changes, both components calculate the same version and the 
healthchecker is created correctly.
   
   #### Which issue(s) this PR fixes:
   Fixes #
   
   ### Checklist
   
   - [x] I have explained the need for this PR and the problem it solves
   - [x] 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
   - [x] I have verified that this change is backward compatible


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to