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]
