Skip to content

Tags: TomTonic/fanout

Tags

v1.16.3

Toggle v1.16.3's commit message
chore(deps): update prometheus client_golang to v1.24.1 and common to…

… v0.70.1, and grpc to v1.82.1

v1.16.2

Toggle v1.16.2's commit message
chore(deps): update Go version and dependencies to latest versions

v1.16.1

Toggle v1.16.1's commit message
Update indirect dependencies github.com/prometheus/common to v0.69.0 …

…and github.com/prometheus/procfs to v0.21.0 and golang.org/x/tools to v0.47.0 and google.golang.org/genproto/googleapis/rpc to v0.0.0-20260622175928-b703f567277d

v1.16.0

Toggle v1.16.0's commit message
refactor: harden fan-out concurrency contract and loser cancellation

An audit of the parallel fan-out confirmed there are no data races today,
but one invariant was implicit and fragile. Document and defend the
concurrency contract, and abort losing upstreams sooner:

- Document the read-only contract on Client.Request: the same *dns.Msg is
  shared across all fan-out workers for a query, so implementations must
  treat it as read-only. Mutating it (e.g. zeroing the ID for DoH/DoQ per
  RFC 8484 / RFC 9250, or adding EDNS options) would be a data race and would
  corrupt the requests sent to the other upstreams.
- The producer now evaluates Pick() into a variable before the select instead
  of inside the send case, so a cancellation no longer silently consumes and
  discards a pick, and guards against a nil Client (defensive: serverCount is
  clamped to <= len(clients) today).
- Cancel the per-query context immediately once a result is selected, so
  losing upstream attempts are aborted right away instead of lingering until
  ServeDNS returns. cancel stays idempotent (also runs via defer) and does not
  override an already-set deadline cause, so the failure reason stays accurate.

Tests: shared-request immutability, nil-pick safety, and prompt loser
cancellation. go test -race -short and golangci-lint are clean.

v1.15.8

Toggle v1.15.8's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #41 from TomTonic/renovate/go-modules

fix(deps): update go modules

v1.15.7

Toggle v1.15.7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #39 from TomTonic/renovate/go-modules

fix(deps): update go modules

v1.15.6

Toggle v1.15.6's commit message
chore(deps): update indirect dependencies

v1.15.5

Toggle v1.15.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Merge pull request #30 from TomTonic/renovate/go-modules

fix(deps): update go modules

v1.15.4

Toggle v1.15.4's commit message
chore(deps): update indirect dependencies google.golang.org/genproto …

…and google.golang.org/grpc

v1.15.3

Toggle v1.15.3's commit message
fix(deps): update go-proxyproto to v0.12.0 and genproto to v0.0.0-202…

…60420184626