Skip to content

Release prep 1.3.1: avoid DNS for disabled ADP bootstrap - #2059

Closed
jszwedko wants to merge 2 commits into
releases/1.3.xfrom
jszwedko/backport-2041-1.3.x
Closed

Release prep 1.3.1: avoid DNS for disabled ADP bootstrap#2059
jszwedko wants to merge 2 commits into
releases/1.3.xfrom
jszwedko/backport-2041-1.3.x

Conversation

@jszwedko

@jszwedko jszwedko commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Release-prep PR for ADP 1.3.1 on releases/1.3.x. Cherry-pick of #2041 plus a version bump.

Backports the fix that avoids DNS lookups during ADP bootstrap when IPC is disabled, preventing startup failures in environments where DNS resolution isn't available.

Commits

Test plan

  • cargo check passes for the affected crates on the 1.3.x toolchain.

🤖 Generated with Claude Code

aqian01 and others added 2 commits July 9, 2026 12:57
## What changed

- Gate remote-agent bootstrap on `data_plane.enabled` so default-disabled ADP exits before creating the Core Agent IPC client.
- Add an explicit `HttpsCapableConnectorBuilder::without_dns_resolution()` mode.
- Use no-DNS connector construction for Core Agent IPC, which targets `https://127.0.0.1:<cmd_port>` and does not require hostname resolution.
- Avoid system DNS resolver construction for DNS-free connector transports such as Unix sockets and vsock.

## Why

On hosts without nameservers in `/etc/resolv.conf`, ADP could fail during startup while constructing the HTTP connector for Core Agent IPC. This happened before ADP reached the disabled-exit path, creating noisy crash loops even when `data_plane.enabled` was false.

## Validation

unit tests, integration test.


Co-authored-by: andrew.qian <andrew.qian@datadoghq.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 9, 2026 20:01
@jszwedko
jszwedko requested a review from a team as a code owner July 9, 2026 20:01
@dd-octo-sts dd-octo-sts Bot added area/io General I/O and networking. area/test All things testing: unit/integration, correctness, SMP regression, etc. labels Jul 9, 2026
@datadog-official

datadog-official Bot commented Jul 9, 2026

Copy link
Copy Markdown

Pipelines

Fix all issues with BitsAI

⚠️ Warnings

🚦 2 Pipeline jobs failed

DataDog/saluki | unit-tests-windows-amd64   View in Datadog   GitLab

Semantic PR Title Check | Check For Semantic PR Title   View in Datadog   GitHub Actions

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 5825f7b | Docs | Datadog PR Page | Give us feedback!

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares the ADP 1.3.1 release by backporting the “no DNS during IPC bootstrap” fix, ensuring ADP startup doesn’t fail in DNS-less environments when the Core Agent IPC endpoint is a literal loopback address.

Changes:

  • Adds a “no-DNS” mode to the shared HTTP connector builder and exercises it in a unit test.
  • Uses the no-DNS connector for Core Agent IPC client construction.
  • Adds an integration test case that clears /etc/resolv.conf and validates ADP startup; bumps ADP version to 1.3.1.

Reviewed changes

Copilot reviewed 6 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/integration/cases/adp-ipc-no-dns/empty-resolv-conf.sh Container init script to clear /etc/resolv.conf for the integration test.
test/integration/cases/adp-ipc-no-dns/config.yaml New integration case asserting ADP starts cleanly without system DNS config.
lib/saluki-io/src/net/client/http/conn.rs Adds without_dns_resolution() support to the HTTPS-capable connector builder (+ unit test).
lib/datadog-agent/commons/src/ipc/client/mod.rs Switches Core Agent IPC client connector construction to no-DNS mode.
docker/scripts/agent-data-plane/app/00-install-ca-certs.sh Stops pinning ca-certificates to a specific version.
docker/Dockerfile.proxy-dumper Stops pinning ca-certificates to a specific version during image build.
Cargo.lock Updates agent-data-plane crate version to 1.3.1.
bin/agent-data-plane/Cargo.toml Bumps ADP package version from 1.3.0 to 1.3.1.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 25 to 27
RUN test -d /usr/local/share/ca-certificates || apt-get update && \
apt-get install -y --no-install-recommends ca-certificates=20240203 && \
apt-get install -y --no-install-recommends ca-certificates && \
apt-get clean
@pr-commenter

pr-commenter Bot commented Jul 9, 2026

Copy link
Copy Markdown

Binary Size Analysis (Agent Data Plane)

Baseline: f546aa0 · Comparison: 5825f7b · diff
Analysis Configuration: stripped binaries · Pass/Fail Threshold: +5%
Sizes: 41.66 MiB (baseline) vs 41.66 MiB (comparison)
Size Change: +2.44 KiB (+0.01%)

✅ Binary size difference within threshold

Changes by Module
Module File Size Symbols
tonic +21.63 KiB 228
http_body_util -18.63 KiB 83
anon.c1c414352e857dde7a9d7b1ad53124cc.132.llvm.4296059611656155176 +17.33 KiB 1
anon.4fce6c7d2aa45dd9a6f02a2c0752f076.498.llvm.9573164220153040075 -17.32 KiB 1
prost -12.36 KiB 31
anon.5db942e1cd943cc112e8df2a4f481a3c.82.llvm.9659898954623019215 +9.60 KiB 1
anon.5f2ad6b78d80e06a5486a3aa9b588cac.0.llvm.1198158128097889638 -9.60 KiB 1
tonic_prost +4.50 KiB 21
tokio +4.17 KiB 1142
std -3.48 KiB 98
alloc +3.45 KiB 609
anyhow -3.41 KiB 487
anon.c634cdd191b074daa02132113dde11a6.215.llvm.12687169279931369570 +3.37 KiB 1
anon.e51ff24844fb89fcc0c2bfdacceee053.227.llvm.7818023259164723953 -3.37 KiB 1
anon.afa712d8cb3e10ca04735411385b903d.153.llvm.6315979240525166414 +3.29 KiB 1
anon.b4e720ff31d34137fbb65f39e9824087.393.llvm.8649721099890346063 -3.19 KiB 1
http +2.93 KiB 105
anon.1235f2e820aba4ef2ff8e9c2f637e5d7.34.llvm.13909526870877785285 +2.73 KiB 1
anon.0481a888e4b4d146aaa3ecd786dcb4ee.79.llvm.30645079778979330 -2.64 KiB 1
core +2.63 KiB 4217
Detailed Symbol Changes
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  [NEW] +47.1Ki  [NEW] +47.0Ki    agent_data_plane::cli::run::handle_run_command::_{{closure}}::hc8affffbeadc2d5c
  [NEW] +31.8Ki  [NEW] +31.7Ki    agent_data_plane::internal::env::workload::RemoteAgentWorkloadProvider::from_configuration::_{{closure}}::h5686a86957d97eff
  [NEW] +30.6Ki  [NEW] +30.4Ki    agent_data_plane::cli::dogstatsd::handle_dogstatsd_command::_{{closure}}::h2e616bd356ccdeff
  [NEW] +28.1Ki  [NEW] +28.0Ki    agent_data_plane::cli::run::create_topology::_{{closure}}::hc5601534ee97eb14
  [NEW] +24.7Ki  [NEW] +24.6Ki    agent_data_plane::internal::remote_agent::run_remote_agent_registration_loop::_{{closure}}::hfd94d8717f2fdb98
  [NEW] +22.0Ki  [NEW] +21.8Ki    _<agent_data_plane::components::host_tags::HostTagsConfiguration as saluki_core::components::transforms::builder::SynchronousTransformBuilder>::build::_{{closure}}::hc68dc6ef3cfdb177
  [NEW] +21.1Ki  [NEW] +21.0Ki    agent_data_plane::cli::debug::handle_debug_command::_{{closure}}::h3a31fd00fc91c2a0
  [NEW] +20.4Ki  [NEW] +20.1Ki    datadog_agent_commons::ipc::client::RemoteAgentClient::from_client_configuration::_{{closure}}::_{{closure}}::_{{closure}}::h70dc3414fb1d4ccc
  [NEW] +17.5Ki  [NEW] +17.4Ki    agent_data_plane::main::_{{closure}}::hbe9aa603ebf62280
  [NEW] +17.3Ki  [NEW]     +81    anon.c1c414352e857dde7a9d7b1ad53124cc.132.llvm.4296059611656155176
  +0.0% +2.36Ki  -0.0% -2.86Ki    [14854 Others]
  [DEL] -17.3Ki  [DEL]     -81    anon.4fce6c7d2aa45dd9a6f02a2c0752f076.498.llvm.9573164220153040075
  [DEL] -17.5Ki  [DEL] -17.4Ki    agent_data_plane::main::_{{closure}}::h7cb36cca64285871
  [DEL] -20.4Ki  [DEL] -20.1Ki    datadog_agent_commons::ipc::client::RemoteAgentClient::from_client_configuration::_{{closure}}::_{{closure}}::_{{closure}}::h8dddc0a36b9fb746
  [DEL] -21.1Ki  [DEL] -21.0Ki    agent_data_plane::cli::debug::handle_debug_command::_{{closure}}::h24bb9b7fa72cef6e
  [DEL] -22.1Ki  [DEL] -21.9Ki    _<agent_data_plane::components::host_tags::HostTagsConfiguration as saluki_core::components::transforms::builder::SynchronousTransformBuilder>::build::_{{closure}}::h64642649d7aa39ca
  [DEL] -24.7Ki  [DEL] -24.6Ki    agent_data_plane::internal::remote_agent::run_remote_agent_registration_loop::_{{closure}}::h1c441ce1d1aec584
  [DEL] -28.1Ki  [DEL] -28.0Ki    agent_data_plane::cli::run::create_topology::_{{closure}}::h91635d5deaa854cc
  [DEL] -30.6Ki  [DEL] -30.4Ki    agent_data_plane::cli::dogstatsd::handle_dogstatsd_command::_{{closure}}::h59e759ccdf259361
  [DEL] -31.6Ki  [DEL] -31.4Ki    agent_data_plane::internal::env::workload::RemoteAgentWorkloadProvider::from_configuration::_{{closure}}::h12f67e29ed7b9186
  [DEL] -47.2Ki  [DEL] -47.0Ki    agent_data_plane::cli::run::handle_run_command::_{{closure}}::hf0f541f4d97eee22
  +0.0% +2.44Ki  -0.0% -2.79Ki    TOTAL

@pr-commenter

pr-commenter Bot commented Jul 9, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Run ID: aa18c938-b021-45e9-9f1e-6514f00047be
Baseline: f546aa02 · Comparison: 5825f7b9 · diff

Optimization Goals: ✅ No significant changes detected

Fine details of change detection per experiment (5)

Experiments configured erratic: true are tagged (ignored) and skipped when determining which experiments regressed or improved. Experiments which are detected as erratic at runtime are tagged (erratic) to flag that the run's sample dispersion was high, but their regression / improvement signal still counts.

experiment goal Δ mean % links
quality_gates_rss_dsd_heavy memory ⚪ +0.04 metrics profiles logs
quality_gates_rss_idle memory ⚪ -0.01 metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory ⚪ -0.20 metrics profiles logs
quality_gates_rss_dsd_medium memory ⚪ -0.21 metrics profiles logs
quality_gates_rss_dsd_low memory ⚪ -0.41 metrics profiles logs
Bounds Checks: ✅ Passed (5)
experiment check replicates observed links
quality_gates_rss_dsd_heavy memory_usage 10/10 ✅ 135 MiB ≤ 140 MiB metrics profiles logs
quality_gates_rss_dsd_low memory_usage 10/10 ✅ 43 MiB ≤ 50 MiB metrics profiles logs
quality_gates_rss_dsd_medium memory_usage 10/10 ✅ 64.9 MiB ≤ 75 MiB metrics profiles logs
quality_gates_rss_dsd_ultraheavy memory_usage 10/10 ✅ 192 MiB ≤ 200 MiB metrics profiles logs
quality_gates_rss_idle memory_usage 10/10 ✅ 29.1 MiB ≤ 40 MiB metrics profiles logs
Explanation

A change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression (is_regression: true). Improvements use the matching criteria for the improving direction. Experiments configured erratic: true (tagged (ignored)) are skipped outright; experiments detected as erratic at runtime (tagged (erratic)) still count, since that flag describes sample dispersion rather than directional certainty. The Δ mean % cell is colored accordingly: 🟢 = improvement, 🔴 = regression, ⚪ = neutral. Reduction in CPU or memory is an improvement; reduction in ingress throughput is a regression.

@jszwedko jszwedko closed this Jul 10, 2026
gh-worker-dd-mergequeue-cf854d Bot pushed a commit that referenced this pull request Jul 10, 2026
… backport) (#2069)

## Summary

Follow-up to PR #2059. This keeps the no-DNS IPC behavior for literal-IP endpoints like `127.0.0.1`, but preserves DNS resolution when the configured IPC endpoint host is a hostname.

Also includes the small doc wording cleanup on `without_dns_resolution()`.

## Testing

- `cargo fmt --package datadog-agent-commons --package saluki-io --check`
- `cargo test -p datadog-agent-commons ipc::client::tests`

Note: full `cargo fmt --check` still hits existing generated-file formatting diffs under stable rustfmt on this branch.

Co-authored-by: jesse.szwedko <jesse.szwedko@datadoghq.com>
jszwedko added a commit that referenced this pull request Jul 10, 2026
… backport) (#2069)

## Summary

Follow-up to PR #2059. This keeps the no-DNS IPC behavior for literal-IP endpoints like `127.0.0.1`, but preserves DNS resolution when the configured IPC endpoint host is a hostname.

Also includes the small doc wording cleanup on `without_dns_resolution()`.

## Testing

- `cargo fmt --package datadog-agent-commons --package saluki-io --check`
- `cargo test -p datadog-agent-commons ipc::client::tests`

Note: full `cargo fmt --check` still hits existing generated-file formatting diffs under stable rustfmt on this branch.

Co-authored-by: jesse.szwedko <jesse.szwedko@datadoghq.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/io General I/O and networking. area/test All things testing: unit/integration, correctness, SMP regression, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants