Skip to content

Ensure docker ready#8245

Merged
NachoEchevarria merged 6 commits into
masterfrom
nacho/dockerFlakiness
Mar 4, 2026
Merged

Ensure docker ready#8245
NachoEchevarria merged 6 commits into
masterfrom
nacho/dockerFlakiness

Conversation

@NachoEchevarria

@NachoEchevarria NachoEchevarria commented Feb 26, 2026

Copy link
Copy Markdown
Collaborator

Summary of changes

Add a Docker daemon readiness check with active recovery before Windows smoke test stages in the CI pipeline.

Reason for change

Windows smoke tests flake with pywintypes.error: (2, 'CreateFile', 'The system cannot find the file specified.') when the Docker named pipe (\.\pipe\docker_engine) isn't available.

Note: There is a similar known regression in the windows-2022 hosted agent image, likely caused by the Docker 29.1.5 upgrade rolled out Feb 9, 2026.

The built-in retryCountOnTaskFailure retries on the same agent, so if the Docker daemon is broken on that VM, all retries fail.

Implementation details

  • New reusable template .azure-pipelines/steps/ensure-docker-ready.yml that:
    • Polls docker version every 10s for up to 300s
    • Detects when the Docker Windows service is not running and actively restarts it (Restart-Service docker -Force, up to 3 attempts)
    • Logs initial service state, restart attempts, and on failure dumps service details + Windows Event Log entries for diagnostics
  • Inserted the template in all 6 Windows smoke test stages in ultimate-pipeline.yml, after install-docker-compose-v1.yml and before the first docker-compose build step
  • The step is a no-op when Docker is already running (~1s on happy path)
  • Windows-only via condition: eq(variables['Agent.OS'], 'Windows_NT')

Test coverage

Other details

Affected stages: nuget_installer_smoke_tests_windows, dotnet_tool_smoke_tests_windows, msi_installer_smoke_tests, dd_dotnet_msi_installer_smoke_tests, tracer_home_smoke_tests, fleet_installer_iis_smoke_tests.

Related upstream issues:

@github-actions github-actions Bot added the area:builds project files, build scripts, pipelines, versioning, releases, packages label Feb 26, 2026
@dd-trace-dotnet-ci-bot

dd-trace-dotnet-ci-bot Bot commented Feb 26, 2026

Copy link
Copy Markdown

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (8245) and master.

✅ No regressions detected - check the details below

Full Metrics Comparison

FakeDbCommand

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration69.38 ± (69.42 - 69.68) ms69.18 ± (69.18 - 69.46) ms-0.3%
.NET Framework 4.8 - Bailout
duration73.28 ± (73.14 - 73.38) ms73.07 ± (72.89 - 73.16) ms-0.3%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1040.04 ± (1041.37 - 1047.73) ms1037.34 ± (1038.20 - 1045.26) ms-0.3%
.NET Core 3.1 - Baseline
process.internal_duration_ms21.81 ± (21.78 - 21.84) ms21.90 ± (21.86 - 21.93) ms+0.4%✅⬆️
process.time_to_main_ms80.34 ± (80.19 - 80.49) ms79.88 ± (79.73 - 80.02) ms-0.6%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.95 ± (10.94 - 10.95) MB10.92 ± (10.92 - 10.93) MB-0.2%
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms21.81 ± (21.78 - 21.85) ms21.78 ± (21.75 - 21.80) ms-0.2%
process.time_to_main_ms81.64 ± (81.52 - 81.76) ms80.95 ± (80.81 - 81.10) ms-0.8%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.98 ± (10.98 - 10.99) MB10.95 ± (10.95 - 10.96) MB-0.3%
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms254.81 ± (252.37 - 257.26) ms251.31 ± (248.17 - 254.44) ms-1.4%
process.time_to_main_ms471.28 ± (470.72 - 471.84) ms469.22 ± (468.68 - 469.77) ms-0.4%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed47.71 ± (47.68 - 47.73) MB47.70 ± (47.67 - 47.72) MB-0.0%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.9%✅⬆️
.NET 6 - Baseline
process.internal_duration_ms20.69 ± (20.67 - 20.71) ms20.64 ± (20.62 - 20.66) ms-0.2%
process.time_to_main_ms69.57 ± (69.45 - 69.70) ms69.58 ± (69.44 - 69.72) ms+0.0%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.63 ± (10.63 - 10.63) MB10.65 ± (10.65 - 10.65) MB+0.2%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms20.66 ± (20.63 - 20.69) ms20.52 ± (20.50 - 20.55) ms-0.6%
process.time_to_main_ms70.90 ± (70.78 - 71.03) ms70.26 ± (70.15 - 70.36) ms-0.9%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.74 ± (10.74 - 10.75) MB10.76 ± (10.76 - 10.76) MB+0.1%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms253.55 ± (252.71 - 254.38) ms249.25 ± (247.29 - 251.22) ms-1.7%
process.time_to_main_ms449.61 ± (449.14 - 450.09) ms448.58 ± (448.15 - 449.01) ms-0.2%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.37 ± (48.34 - 48.40) MB48.44 ± (48.42 - 48.47) MB+0.1%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.1%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms19.00 ± (18.97 - 19.02) ms19.04 ± (19.01 - 19.06) ms+0.2%✅⬆️
process.time_to_main_ms68.87 ± (68.75 - 68.99) ms69.13 ± (68.97 - 69.28) ms+0.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.68 ± (7.67 - 7.69) MB7.69 ± (7.68 - 7.69) MB+0.1%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms19.07 ± (19.05 - 19.10) ms18.97 ± (18.93 - 19.00) ms-0.6%
process.time_to_main_ms70.12 ± (70.00 - 70.24) ms69.86 ± (69.76 - 69.96) ms-0.4%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.73 ± (7.73 - 7.74) MB7.75 ± (7.74 - 7.76) MB+0.2%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms180.60 ± (179.77 - 181.43) ms180.14 ± (179.16 - 181.12) ms-0.3%
process.time_to_main_ms431.62 ± (431.02 - 432.23) ms431.22 ± (430.64 - 431.80) ms-0.1%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed35.88 ± (35.86 - 35.91) MB36.00 ± (35.97 - 36.03) MB+0.3%✅⬆️
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)-0.0%

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration195.37 ± (195.52 - 196.37) ms195.18 ± (195.04 - 195.87) ms-0.1%
.NET Framework 4.8 - Bailout
duration199.13 ± (198.86 - 199.56) ms198.92 ± (198.68 - 199.37) ms-0.1%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1153.07 ± (1157.06 - 1166.46) ms1153.56 ± (1153.90 - 1162.60) ms+0.0%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms190.59 ± (190.13 - 191.05) ms188.96 ± (188.53 - 189.39) ms-0.9%
process.time_to_main_ms83.16 ± (82.92 - 83.39) ms82.52 ± (82.32 - 82.72) ms-0.8%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.12 ± (16.09 - 16.14) MB16.05 ± (16.02 - 16.08) MB-0.4%
runtime.dotnet.threads.count20 ± (20 - 20)20 ± (19 - 20)-0.5%
.NET Core 3.1 - Bailout
process.internal_duration_ms189.24 ± (188.85 - 189.64) ms187.90 ± (187.55 - 188.25) ms-0.7%
process.time_to_main_ms83.98 ± (83.79 - 84.16) ms83.29 ± (83.14 - 83.44) ms-0.8%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.13 ± (16.10 - 16.15) MB16.13 ± (16.10 - 16.15) MB-0.0%
runtime.dotnet.threads.count21 ± (21 - 21)21 ± (20 - 21)-0.1%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms432.08 ± (428.70 - 435.47) ms436.68 ± (433.68 - 439.68) ms+1.1%✅⬆️
process.time_to_main_ms478.59 ± (477.97 - 479.22) ms478.16 ± (477.41 - 478.92) ms-0.1%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed58.10 ± (57.99 - 58.22) MB58.04 ± (57.92 - 58.15) MB-0.1%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.0%
.NET 6 - Baseline
process.internal_duration_ms193.86 ± (193.51 - 194.21) ms193.92 ± (193.48 - 194.37) ms+0.0%✅⬆️
process.time_to_main_ms71.66 ± (71.47 - 71.84) ms71.41 ± (71.22 - 71.59) ms-0.4%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.37 ± (16.34 - 16.41) MB16.39 ± (16.36 - 16.42) MB+0.1%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+0.1%✅⬆️
.NET 6 - Bailout
process.internal_duration_ms193.17 ± (192.80 - 193.54) ms192.35 ± (192.02 - 192.68) ms-0.4%
process.time_to_main_ms72.51 ± (72.35 - 72.66) ms72.25 ± (72.13 - 72.37) ms-0.4%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.27 ± (16.15 - 16.38) MB16.42 ± (16.37 - 16.47) MB+0.9%✅⬆️
runtime.dotnet.threads.count20 ± (20 - 20)20 ± (20 - 20)-0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms454.29 ± (452.77 - 455.81) ms455.58 ± (453.94 - 457.23) ms+0.3%✅⬆️
process.time_to_main_ms453.63 ± (453.02 - 454.23) ms454.66 ± (454.07 - 455.25) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed57.90 ± (57.79 - 58.01) MB57.87 ± (57.76 - 57.97) MB-0.1%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)+0.0%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms192.45 ± (192.02 - 192.88) ms191.39 ± (191.07 - 191.71) ms-0.5%
process.time_to_main_ms70.87 ± (70.67 - 71.08) ms70.83 ± (70.62 - 71.04) ms-0.1%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.73 ± (11.71 - 11.76) MB11.82 ± (11.79 - 11.84) MB+0.7%✅⬆️
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.4%
.NET 8 - Bailout
process.internal_duration_ms192.31 ± (191.90 - 192.72) ms190.98 ± (190.54 - 191.43) ms-0.7%
process.time_to_main_ms72.03 ± (71.89 - 72.17) ms71.92 ± (71.77 - 72.06) ms-0.2%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.81 ± (11.78 - 11.84) MB11.81 ± (11.78 - 11.84) MB-0.0%
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)+0.2%✅⬆️
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms368.65 ± (367.24 - 370.06) ms369.75 ± (368.50 - 371.01) ms+0.3%✅⬆️
process.time_to_main_ms438.49 ± (437.84 - 439.15) ms438.84 ± (438.05 - 439.63) ms+0.1%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed47.76 ± (47.72 - 47.79) MB47.80 ± (47.77 - 47.83) MB+0.1%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.9%
Comparison explanation

Execution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8245) - mean (69ms)  : 67, 71
    master - mean (70ms)  : 68, 71

    section Bailout
    This PR (8245) - mean (73ms)  : 72, 74
    master - mean (73ms)  : 72, 74

    section CallTarget+Inlining+NGEN
    This PR (8245) - mean (1,042ms)  : 992, 1092
    master - mean (1,045ms)  : 999, 1090

Loading
FakeDbCommand (.NET Core 3.1)
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8245) - mean (107ms)  : 105, 110
    master - mean (108ms)  : 105, 111

    section Bailout
    This PR (8245) - mean (108ms)  : 107, 110
    master - mean (109ms)  : 107, 112

    section CallTarget+Inlining+NGEN
    This PR (8245) - mean (746ms)  : 702, 791
    master - mean (762ms)  : 723, 801

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8245) - mean (95ms)  : 93, 98
    master - mean (95ms)  : 93, 98

    section Bailout
    This PR (8245) - mean (96ms)  : 94, 98
    master - mean (97ms)  : 95, 99

    section CallTarget+Inlining+NGEN
    This PR (8245) - mean (733ms)  : 701, 766
    master - mean (741ms)  : 721, 761

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8245) - mean (95ms)  : 92, 98
    master - mean (95ms)  : 92, 98

    section Bailout
    This PR (8245) - mean (95ms)  : 94, 97
    master - mean (96ms)  : 94, 98

    section CallTarget+Inlining+NGEN
    This PR (8245) - mean (640ms)  : 623, 657
    master - mean (650ms)  : 631, 669

Loading
HttpMessageHandler (.NET Framework 4.8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8245) - mean (195ms)  : 191, 200
    master - mean (196ms)  : 192, 200

    section Bailout
    This PR (8245) - mean (199ms)  : 196, 202
    master - mean (199ms)  : 196, 203

    section CallTarget+Inlining+NGEN
    This PR (8245) - mean (1,158ms)  : 1094, 1222
    master - mean (1,162ms)  : 1090, 1234

Loading
HttpMessageHandler (.NET Core 3.1)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8245) - mean (280ms)  : 275, 285
    master - mean (283ms)  : 275, 291

    section Bailout
    This PR (8245) - mean (280ms)  : 274, 285
    master - mean (282ms)  : 277, 287

    section CallTarget+Inlining+NGEN
    This PR (8245) - mean (949ms)  : 906, 991
    master - mean (946ms)  : 902, 989

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8245) - mean (274ms)  : 265, 283
    master - mean (274ms)  : 268, 280

    section Bailout
    This PR (8245) - mean (273ms)  : 268, 277
    master - mean (274ms)  : 269, 279

    section CallTarget+Inlining+NGEN
    This PR (8245) - mean (940ms)  : 902, 979
    master - mean (942ms)  : 908, 975

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (8245) - mean (272ms)  : 267, 277
    master - mean (273ms)  : 265, 282

    section Bailout
    This PR (8245) - mean (272ms)  : 266, 278
    master - mean (274ms)  : 270, 279

    section CallTarget+Inlining+NGEN
    This PR (8245) - mean (840ms)  : 811, 869
    master - mean (839ms)  : 815, 863

Loading

@pr-commenter

pr-commenter Bot commented Feb 26, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-03-03 13:35:05

Comparing candidate commit fc90a44 in PR branch nacho/dockerFlakiness with baseline commit 106cbcb in branch master.

Found 12 performance improvements and 8 performance regressions! Performance is the same for 158 metrics, 14 unstable metrics.

scenario:Benchmarks.Trace.ActivityBenchmark.StartStopWithChild netcoreapp3.1

  • 🟩 execution_time [-108.303ms; -105.928ms] or [-54.221%; -53.032%]

scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody netcoreapp3.1

  • 🟩 execution_time [-18.310ms; -12.467ms] or [-8.528%; -5.807%]

scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorMoreComplexBody net6.0

  • 🟥 execution_time [+11.620ms; +15.940ms] or [+5.849%; +8.024%]

scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody net6.0

  • 🟩 execution_time [-21.445ms; -20.914ms] or [-9.650%; -9.411%]

scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest net6.0

  • 🟩 execution_time [-52.071ms; -47.187ms] or [-37.503%; -33.986%]

scenario:Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSlice net472

  • 🟥 execution_time [+100.293µs; +114.680µs] or [+5.291%; +6.050%]
  • 🟥 throughput [-30.071op/s; -26.504op/s] or [-5.700%; -5.024%]

scenario:Benchmarks.Trace.CharSliceBenchmark.OriginalCharSlice net6.0

  • 🟩 execution_time [-117.235µs; -105.898µs] or [-5.805%; -5.243%]
  • 🟩 throughput [+27.518op/s; +30.364op/s] or [+5.557%; +6.132%]

scenario:Benchmarks.Trace.CharSliceBenchmark.OriginalCharSlice netcoreapp3.1

  • 🟩 execution_time [-1.628ms; -1.240ms] or [-40.781%; -31.063%]

scenario:Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch net6.0

  • 🟩 execution_time [-14.757ms; -10.915ms] or [-6.942%; -5.135%]

scenario:Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync net472

  • 🟩 throughput [+16336.161op/s; +17265.964op/s] or [+5.537%; +5.853%]

scenario:Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync net472

  • 🟩 throughput [+20027.877op/s; +23168.262op/s] or [+5.191%; +6.005%]

scenario:Benchmarks.Trace.HttpClientBenchmark.SendAsync netcoreapp3.1

  • 🟥 throughput [-9512.887op/s; -7626.534op/s] or [-7.349%; -5.892%]
  • 🟩 execution_time [-91.621ms; -88.909ms] or [-46.144%; -44.779%]

scenario:Benchmarks.Trace.ILoggerBenchmark.EnrichedLog net6.0

  • 🟥 execution_time [+13.708ms; +18.210ms] or [+6.878%; +9.136%]

scenario:Benchmarks.Trace.Log4netBenchmark.EnrichedLog netcoreapp3.1

  • 🟩 execution_time [-41.214ms; -38.770ms] or [-20.321%; -19.116%]

scenario:Benchmarks.Trace.SingleSpanAspNetCoreBenchmark.SingleSpanAspNetCore netcoreapp3.1

  • 🟥 throughput [-15947570.013op/s; -14739282.048op/s] or [-6.617%; -6.115%]

scenario:Benchmarks.Trace.SpanBenchmark.StartFinishTwoScopes netcoreapp3.1

  • 🟥 execution_time [+16.456ms; +22.198ms] or [+8.499%; +11.465%]
  • 🟥 throughput [-42677.699op/s; -29425.295op/s] or [-9.087%; -6.265%]

@andrewlock andrewlock left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Worth a try, thanks!

@NachoEchevarria
NachoEchevarria marked this pull request as ready for review March 3, 2026 17:27
@NachoEchevarria
NachoEchevarria requested a review from a team as a code owner March 3, 2026 17:27
@NachoEchevarria
NachoEchevarria merged commit 12c3626 into master Mar 4, 2026
158 checks passed
@NachoEchevarria
NachoEchevarria deleted the nacho/dockerFlakiness branch March 4, 2026 10:08
@github-actions github-actions Bot added this to the vNext-v3 milestone Mar 4, 2026
NachoEchevarria added a commit that referenced this pull request Apr 9, 2026
## Summary
Add Linux Docker readiness check to CI, mirroring the existing Windows
approach (PR #8245). Targets transient cgroup/systemd/dbus failures —
the largest CI flake category (10 commits blocked).

## Reason for change
`retryCountOnTaskFailure` retries on the **same agent**, so if Docker is
broken on that VM, all retries fail. This adds active recovery (service
restart) before Docker commands run.

[For
instance](https://dev.azure.com/datadoghq/a51c4863-3eb4-4c5d-878a-58b41a049e4e/_apis/build/builds/198269/logs/9297):

```
2026-03-25T15:05:08.0833114Z docker: Error response from daemon: failed to create task for container: Unavailable: error reading from server: EOF
2026-03-25T15:05:08.0833917Z 
2026-03-25T15:05:08.0834644Z Run 'docker run --help' for more information
```

## Changes
- New `ensure-docker-ready-linux.sh`: waits for Docker daemon, attempts
`systemctl restart docker` if the service is down (mirrors Windows
`Restart-Service`), emits diagnostics on failure
- `ensure-docker-ready.yml`: Linux readiness step added alongside
existing Windows step
- `run-in-docker.yml`: embedded `ensure-docker-ready.yml` call —
automatically covers all ~27 Linux jobs that use this template.
- `ultimate-pipeline.yml`: added readiness check to
`integration_tests_windows_msi` job (the only uncovered Windows
docker-compose caller)

---------

Co-authored-by: datadog-official[bot] <214633350+datadog-official[bot]@users.noreply.github.com>
Co-authored-by: Andrew Lock <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:builds project files, build scripts, pipelines, versioning, releases, packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants