Increase timeout DiscoveryService Tests#8118
Conversation
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8118) and master. ✅ No regressions detected - check the details below Full Metrics ComparisonFakeDbCommand
HttpMessageHandler
Comparison explanationExecution-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:
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 chartsFakeDbCommand (.NET Framework 4.8)gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8118) - mean (79ms) : 76, 82
master - mean (78ms) : 75, 81
section Bailout
This PR (8118) - mean (82ms) : 79, 85
master - mean (83ms) : 80, 85
section CallTarget+Inlining+NGEN
This PR (8118) - mean (1,118ms) : 1068, 1168
master - mean (1,122ms) : 1057, 1187
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 (8118) - mean (134ms) : 129, 138
master - mean (134ms) : 130, 138
section Bailout
This PR (8118) - mean (135ms) : 132, 139
master - mean (136ms) : 132, 139
section CallTarget+Inlining+NGEN
This PR (8118) - mean (895ms) : 850, 940
master - mean (899ms) : 855, 942
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8118) - mean (119ms) : 115, 123
master - mean (119ms) : 113, 124
section Bailout
This PR (8118) - mean (121ms) : 119, 123
master - mean (120ms) : 117, 122
section CallTarget+Inlining+NGEN
This PR (8118) - mean (853ms) : 814, 892
master - mean (849ms) : 821, 878
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8118) - mean (116ms) : 112, 121
master - mean (116ms) : 111, 121
section Bailout
This PR (8118) - mean (118ms) : 115, 121
master - mean (117ms) : 112, 121
section CallTarget+Inlining+NGEN
This PR (8118) - mean (769ms) : 749, 789
master - mean (758ms) : 734, 782
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 (8118) - mean (210ms) : 202, 217
master - mean (203ms) : 196, 210
section Bailout
This PR (8118) - mean (212ms) : 203, 220
master - mean (208ms) : 202, 215
section CallTarget+Inlining+NGEN
This PR (8118) - mean (1,197ms) : 1146, 1249
master - mean (1,201ms) : 1134, 1268
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 (8118) - mean (310ms) : 298, 323
master - mean (309ms) : 296, 321
section Bailout
This PR (8118) - mean (312ms) : 299, 325
master - mean (311ms) : 302, 321
section CallTarget+Inlining+NGEN
This PR (8118) - mean (1,047ms) : 979, 1115
master - mean (1,036ms) : 993, 1078
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8118) - mean (307ms) : 296, 319
master - mean (300ms) : 289, 310
section Bailout
This PR (8118) - mean (310ms) : 295, 324
master - mean (300ms) : 291, 310
section CallTarget+Inlining+NGEN
This PR (8118) - mean (1,036ms) : 990, 1082
master - mean (1,020ms) : 971, 1070
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8118) - mean (306ms) : 295, 318
master - mean (294ms) : 282, 306
section Bailout
This PR (8118) - mean (310ms) : crit, 291, 328
master - mean (292ms) : 285, 300
section CallTarget+Inlining+NGEN
This PR (8118) - mean (992ms) : 875, 1109
master - mean (944ms) : 833, 1055
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BenchmarksBenchmark execution time: 2026-02-04 15:05:01 Comparing candidate commit ba5d881 in PR branch Found 8 performance improvements and 8 performance regressions! Performance is the same for 158 metrics, 18 unstable metrics. scenario:Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody netcoreapp3.1
scenario:Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs net6.0
scenario:Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs netcoreapp3.1
scenario:Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack netcoreapp3.1
scenario:Benchmarks.Trace.AspNetCoreBenchmark.SendRequest net6.0
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces net472
scenario:Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces netcoreapp3.1
scenario:Benchmarks.Trace.CharSliceBenchmark.OriginalCharSlice net6.0
scenario:Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery net472
scenario:Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark net6.0
scenario:Benchmarks.Trace.SingleSpanAspNetCoreBenchmark.SingleSpanAspNetCore netcoreapp3.1
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishScope net472
scenario:Benchmarks.Trace.SpanBenchmark.StartFinishTwoScopes net472
|
andrewlock
left a comment
There was a problem hiding this comment.
Hey, nice idea, but I don't think this will work...
AFAICT, none of the changes in this PR will resolve any flakiness 🤔 We already had mutexes at the appropriate place, this PR just adds an extra mutex in the middle. But given it's always doing mutex2.Wait() immediately before mutex3.Wait(), this won't improve anything I think.
It seems like the issue is more likely some sort of resource exhaustion, as we've been seeing recently generally, and if anything, this may actually make the problem worse as it gives us extra mutexes to wait for 😅
IMO, the biggest thing we could do to reduce the flake is probably revert all this, and just bump up the 10s wait time to be 30s, unless there's something else we're missing here 🤷♂️
Thanks for the feedback! |
andrewlock
left a comment
There was a problem hiding this comment.
Thanks! (don't forget to update the PR description 🙂 )
Summary of changes
Increases mutex timeouts from 10s to 30s in DiscoveryServiceTests to reduce flakiness on slow CI environments.
Reason for change
Three DiscoveryServiceTests tests were intermittently failing.
Implementation details
Test coverage
Other details