Baoyuantop commented on issue #12973: URL: https://github.com/apache/apisix/issues/12973#issuecomment-3956311515
Hi @zbfzn, thank you for providing such a detailed and insightful bug report. From your description and the logs, it seems your diagnosis is correct. The issue likely lies in the upstream node comparison logic, where APISIX fails to update the `nodes` list after DNS resolution recovers. When the DNS service fails, the list of resolved IPs becomes empty. After the DNS service is restored, even though new IPs are resolved, the `compare_upstream_node` function might incorrectly determine that no changes have occurred because the original domain name configuration in `original_nodes` hasn't changed. This prevents the empty `nodes` list from being updated with the newly resolved, valid IP addresses, leading to the persistent 503 errors. We have marked this as a bug and will prioritize its investigation. Our team will follow your reproduction steps to verify the behavior and work on a fix based on your findings. The fix will likely involve adjusting the comparison logic to correctly identify a change when the resolved IPs are updated, especially when recovering from an empty state. -- 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]
