Avoid Microsoft.Data.SqlClient transport flakes - #8950
Conversation
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8950) 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 (8950) - mean (74ms) : 70, 79
master - mean (73ms) : 69, 77
section Bailout
This PR (8950) - mean (79ms) : 74, 83
master - mean (75ms) : 72, 77
section CallTarget+Inlining+NGEN
This PR (8950) - mean (1,095ms) : 1044, 1145
master - mean (1,086ms) : 1043, 1129
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 (8950) - mean (110ms) : 107, 113
master - mean (111ms) : 105, 118
section Bailout
This PR (8950) - mean (115ms) : 109, 121
master - mean (110ms) : 107, 112
section CallTarget+Inlining+NGEN
This PR (8950) - mean (789ms) : 763, 815
master - mean (780ms) : 755, 806
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8950) - mean (101ms) : 95, 108
master - mean (101ms) : 95, 107
section Bailout
This PR (8950) - mean (101ms) : 96, 107
master - mean (99ms) : 96, 101
section CallTarget+Inlining+NGEN
This PR (8950) - mean (944ms) : 912, 976
master - mean (944ms) : 909, 979
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8950) - mean (95ms) : 93, 98
master - mean (96ms) : 93, 99
section Bailout
This PR (8950) - mean (103ms) : 91, 114
master - mean (102ms) : 95, 109
section CallTarget+Inlining+NGEN
This PR (8950) - mean (822ms) : 788, 856
master - mean (824ms) : 778, 870
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 (8950) - mean (214ms) : 209, 219
master - mean (206ms) : 201, 211
section Bailout
This PR (8950) - mean (219ms) : 215, 223
master - mean (211ms) : 206, 215
section CallTarget+Inlining+NGEN
This PR (8950) - mean (1,271ms) : 1214, 1329
master - mean (1,236ms) : 1181, 1292
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 (8950) - mean (306ms) : 299, 313
master - mean (298ms) : 292, 305
section Bailout
This PR (8950) - mean (310ms) : 303, 316
master - mean (297ms) : 291, 304
section CallTarget+Inlining+NGEN
This PR (8950) - mean (1,022ms) : 998, 1045
master - mean (992ms) : 970, 1014
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8950) - mean (303ms) : 296, 310
master - mean (290ms) : 284, 296
section Bailout
This PR (8950) - mean (302ms) : 295, 308
master - mean (291ms) : 284, 297
section CallTarget+Inlining+NGEN
This PR (8950) - mean (1,208ms) : 1167, 1248
master - mean (1,189ms) : 1153, 1226
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8950) - mean (302ms) : 295, 309
master - mean (290ms) : 281, 299
section Bailout
This PR (8950) - mean (302ms) : 297, 307
master - mean (288ms) : 283, 294
section CallTarget+Inlining+NGEN
This PR (8950) - mean (1,112ms) : 1005, 1218
master - mean (1,063ms) : 1001, 1126
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BenchmarksBenchmark execution time: 2026-07-28 12:17:14 Comparing candidate commit 257decb in PR branch Found 0 performance improvements and 2 performance regressions! Performance is the same for 70 metrics, 0 unstable metrics, 61 known flaky benchmarks, 65 flaky benchmarks without significant changes.
|
| if (ex.Number == 0 && ex.InnerException is SocketException) | ||
| static bool IsTransportError(Exception ex) | ||
| { | ||
| // Assembly.LoadFile creates a distinct SqlException type identity, so use the full name |
Summary of changes
Handle transient Microsoft.Data.SqlClient transport errors during the full sample run and return skip exit code 13.
Reason for change
SQL Server connections can occasionally drop mid-command in CI, causing unrelated integration test flakes.
Test coverage
Built Samples.Microsoft.Data.SqlClient across all configured target frameworks.
#incident-57303