arunmat27 commented on PR #13629:
URL: https://github.com/apache/apisix/pull/13629#issuecomment-4853653775

   I hit an issue while testing these changes.
   
   **Setup:** APISIX container (with 2 NGINX worker processes) and 2 upstream 
nodes.
   
   **Steps:**
   
   1. Start APISIX and make a request. The worker that handles the request 
creates a new checker and adds both upstream nodes to shared memory.
   2. Remove one of the upstream nodes.
   3. Send another request and if that is handled by the **other** NGINX worker 
(i.e., not the worker from step 1) - it won't have the checker in its 
`working_pool`, it creates a new one. However, during the `create_checker()` 
flow, it only adds targets and never removes. As a result, the removed upstream 
node remains in shared memory and continues to appear in the `/v1/healthcheck` 
response.
   
   **Potential fix:** Update `create_checker()` to call 
`sync_checker_targets()` instead of `checker:add_targets()`.
   


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