[GH-ISSUE #526] More Effective RemoteSolver Circuit Check #182

Closed
opened 2026-02-26 04:34:18 +03:00 by kerem · 1 comment
Owner

Originally created by @mageddo on GitHub (Jul 31, 2024).
Original GitHub issue: https://github.com/mageddo/dns-proxy-server/issues/526

First Solution (Deprecated)

What is Happening

CircuitBreaker Ping is using TCP

What is Expected

Test the UDP port will be more effective to really have sure that the server is healthy as the remote solver will try to solve using UDP not TCP, I caught at one scenario where TCP remote port is available but UDP is not available on my network

Originally created by @mageddo on GitHub (Jul 31, 2024). Original GitHub issue: https://github.com/mageddo/dns-proxy-server/issues/526 ## First Solution (Deprecated) ### What is Happening CircuitBreaker Ping is using TCP ### What is Expected Test the UDP port will be more effective to really have sure that the server is healthy as the remote solver will try to solve using UDP not TCP, I caught at one scenario where TCP remote port is available but UDP is not available on my network
kerem closed this issue 2026-02-26 04:34:18 +03:00
Author
Owner

@mageddo commented on GitHub (Jul 31, 2024):

Second Solution

Context

Yet, from my test solution 1 wasn't effective, the best way to check if the remote server is working is to do a real query to it. Actually DPS RemoteServer do circuitBreaker check at every request, I consider that what is disturbing the expected behavior is the Ping feature which don't have a complete guarantee that the remote server is really working causing a false positive.

Proposed Changes

  • Entirely disable the ping feature and let the circuit be checked by real DNS queries
  • Use the CircuitBreakerWatchDogScheduler to log the remote server circuit status.
  • Don't flush the cache on HALF_OPEN status as it don't guarantee that the remote server will work, it's only a try
<!-- gh-comment-id:2261421618 --> @mageddo commented on GitHub (Jul 31, 2024): ## Second Solution ### Context Yet, from my test solution 1 wasn't effective, the best way to check if the remote server is working is to do a real query to it. Actually DPS RemoteServer do circuitBreaker check at every request, I consider that what is disturbing the expected behavior is the Ping feature which don't have a complete guarantee that the remote server is really working causing a false positive. ### Proposed Changes * Entirely disable the ping feature and let the circuit be checked by real DNS queries * Use the CircuitBreakerWatchDogScheduler to log the remote server circuit status. * Don't flush the cache on HALF_OPEN status as it don't guarantee that the remote server will work, it's only a try
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/dns-proxy-server-mageddo#182
No description provided.