secondary server, mirage layer - #347
Merged
Merged
Conversation
If there's a (Dns_server.Secondary.)timer-triggered connection request, do not infinitely try to connect (via request -> fail -> close -> request) in a tight loop, but cancel on first sight (the timer is responsible for re-connecting)
reynir
approved these changes
Nov 28, 2023
reynir
left a comment
Member
There was a problem hiding this comment.
This looks good. I have some suggestions.
Member
Author
|
I think the entire dns_server_mirage and dns_mirage logic may need an overhaul with a view on when which failures may arise, and how to properly handle them (to avoid such tight loops). maybe |
reynir
reviewed
Nov 28, 2023
reynir
approved these changes
Nov 30, 2023
Member
|
I think this improves the situation so I will merge. If there are unintended effects we can revisit. |
hannesm
added a commit
to hannesm/opam-repository
that referenced
this pull request
May 29, 2024
CHANGES:
* dns-client (lwt, mirage): depend on happy-eyeballs-{lwt,mirage} instead of
duplicating the code. This requires happy-eyeballs 1.1.0, and now the same
Happy_eyeballs_{lwt,mirage}.t is used for DNS (connecting to the nameserver)
and for the application (connecting to a remote host)
(@dinosaure @hannesm mirage/ocaml-dns#346)
* server: improve API documentation (@hannesm
1a80bd4080e597687152cf351d035ef5f00c5946
000ae02dfc477d91c05891e3891a447328ae448a)
* server: add a `packet_callback` to `handle_packet` and `handle_buf`
(@RyanGibb mirage/ocaml-dns#349)
* server: expose `update_data` (@RyanGibb mirage/ocaml-dns#350)
* resolver: b root name server IP change (@hannesm mirage/ocaml-dns#348)
* secondary server [mirage]: avoid infinite loop in connect (avoids SYN floods)
(@hannesm @reynir mirage/ocaml-dns#347)
* resolver, dns_zone: use consistently `Log` instead of `Logs` (@palainp mirage/ocaml-dns#342)
avsm
pushed a commit
to avsm/opam-repository
that referenced
this pull request
Sep 5, 2024
CHANGES:
* dns-client (lwt, mirage): depend on happy-eyeballs-{lwt,mirage} instead of
duplicating the code. This requires happy-eyeballs 1.1.0, and now the same
Happy_eyeballs_{lwt,mirage}.t is used for DNS (connecting to the nameserver)
and for the application (connecting to a remote host)
(@dinosaure @hannesm mirage/ocaml-dns#346)
* server: improve API documentation (@hannesm
1a80bd4080e597687152cf351d035ef5f00c5946
000ae02dfc477d91c05891e3891a447328ae448a)
* server: add a `packet_callback` to `handle_packet` and `handle_buf`
(@RyanGibb mirage/ocaml-dns#349)
* server: expose `update_data` (@RyanGibb mirage/ocaml-dns#350)
* resolver: b root name server IP change (@hannesm mirage/ocaml-dns#348)
* secondary server [mirage]: avoid infinite loop in connect (avoids SYN floods)
(@hannesm @reynir mirage/ocaml-dns#347)
* resolver, dns_zone: use consistently `Log` instead of `Logs` (@palainp mirage/ocaml-dns#342)
RyanGibb
added a commit
to RyanGibb/ocaml-dns
that referenced
this pull request
Nov 18, 2024
Release 8.0.0
CHANGES:
* dns-client (lwt, mirage): depend on happy-eyeballs-{lwt,mirage} instead of
duplicating the code. This requires happy-eyeballs 1.1.0, and now the same
Happy_eyeballs_{lwt,mirage}.t is used for DNS (connecting to the nameserver)
and for the application (connecting to a remote host)
(@dinosaure @hannesm mirage#346)
* server: improve API documentation (@hannesm
1a80bd4
000ae02)
* server: add a `packet_callback` to `handle_packet` and `handle_buf`
(@RyanGibb mirage#349)
* server: expose `update_data` (@RyanGibb mirage#350)
* resolver: b root name server IP change (@hannesm mirage#348)
* secondary server [mirage]: avoid infinite loop in connect (avoids SYN floods)
(@hannesm @reynir mirage#347)
* resolver, dns_zone: use consistently `Log` instead of `Logs` (@palainp mirage#342)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
If there's a (Dns_server.Secondary.)timer-triggered connection request, do not infinitely try to connect (via request -> fail -> close -> request) in a tight loop, but cancel on first sight (the timer is responsible for re-connecting)
I'm in the process of testing this in production.