Skip to content

Commit 25590be

Browse files
committed
Merge branch 'dev/paul/azure/step2' into dev/paul/azure/step3
2 parents 9aa4f09 + 30140f6 commit 25590be

31 files changed

Lines changed: 799 additions & 469 deletions

CHANGELOG.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,87 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
77

88
> **Note:** Releases are sorted in reverse chronological order (newest first).
99
10+
## [Stable release 6.0.5] - 2026-01-15
11+
12+
This update brings the below changes over the previous stable release:
13+
14+
### Fixed
15+
16+
- Fixed NullReferenceException issue with `SqlDataAdapter` when processing batch scenarios where certain SQL RPC calls may not include system parameters.
17+
([#3878](https://github.com/dotnet/SqlClient/pull/3878))
18+
19+
### Added
20+
21+
*What Changed:*
22+
23+
- Added new AppContext switch `Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault` to set `MultiSubnetFailover=true` by default in connection string.
24+
([#3852](https://github.com/dotnet/SqlClient/pull/3852))
25+
26+
*Who Benefits:*
27+
28+
- Applications that need MultiSubnetFailover enabled globally without modifying connection strings.
29+
30+
*Impact:*
31+
32+
- Applications can now enable MultiSubnetFailover globally using one of the following methods:
33+
34+
```c#
35+
// In application code
36+
AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault", true);
37+
```
38+
39+
```json
40+
// In runtimeconfig.json
41+
{
42+
"configProperties": {
43+
"Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault": true
44+
}
45+
}
46+
```
47+
48+
```xml
49+
<!-- In App.Config -->
50+
<runtime>
51+
<AppContextSwitchOverrides value="Switch.Microsoft.Data.SqlClient.EnableMultiSubnetFailoverByDefault=true" />
52+
</runtime>
53+
```
54+
55+
### Changed
56+
57+
- Updated dependencies ([#3840](https://github.com/dotnet/SqlClient/pull/3840)):
58+
- .NET Framework 4.6.2:
59+
60+
- Azure.Core 1.50.0 - Added
61+
- Azure.Identity 1.14.2 -> 1.17.1
62+
- Microsoft.Identity.Client 4.80.0 - Added
63+
- Microsoft.IdentityModel.JsonWebTokens 7.5.0 -> 7.7.1
64+
- Microsoft.IdentityModel.Protocols.OpenIdConnect 7.5.0 -> 7.7.1
65+
- System.Buffers 4.5.1 -> 4.6.1
66+
- System.Text.Json 8.0.5 -> 8.0.6
67+
- Microsoft.Bcl.Cryptography - Removed
68+
- System.Text.Encodings.Web - Removed
69+
70+
- .NET 8.0:
71+
72+
- Azure.Core 1.50.0 - Added
73+
- Azure.Identity 1.14.2 -> 1.17.1
74+
- Microsoft.Identity.Client 4.80.0 - Added
75+
- Microsoft.IdentityModel.JsonWebTokens 7.5.0 -> 7.7.1
76+
- Microsoft.IdentityModel.Protocols.OpenIdConnect 7.5.0 -> 7.7.1
77+
- Microsoft.Bcl.Cryptography - Removed
78+
- System.Text.Json - Removed
79+
80+
- .NET 9.0:
81+
82+
- Azure.Core 1.50.0 - Added
83+
- Azure.Identity 1.14.2 -> 1.17.1
84+
- Microsoft.Extensions.Caching.Memory 9.0.4 -> 9.0.11
85+
- Microsoft.Identity.Client 4.80.0 - Added
86+
- Microsoft.IdentityModel.JsonWebTokens 7.5.0 -> 7.7.1
87+
- Microsoft.IdentityModel.Protocols.OpenIdConnect 7.5.0 -> 7.7.1
88+
- Microsoft.Bcl.Cryptography - Removed
89+
- System.Text.Json - Removed
90+
1091
## [Stable Release 6.1.4] - 2026-01-15
1192

1293
This update brings the following changes since the [6.1.3](release-notes/6.1/6.1.3.md) release:

build.proj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,9 @@
311311
--results-directory $(ResultsDirectory)
312312
--filter "$(FilterStatement)"
313313
--logger:"trx;LogFilePrefix=Unit-Windows$(TargetGroup)-$(TestSet)"
314+
--blame-hang
315+
--blame-hang-dump-type full
316+
--blame-hang-timeout 10m
314317
</TestCommand>
315318
<!-- Convert more than one whitespace character into one space -->
316319
<TestCommand>$([System.Text.RegularExpressions.Regex]::Replace($(TestCommand), "\s+", " "))</TestCommand>
@@ -331,6 +334,9 @@
331334
--results-directory $(ResultsDirectory)
332335
--filter "$(FilterStatement)"
333336
--logger:"trx;LogFilePrefix=Unit-Unixnetcoreapp-$(TestSet)"
337+
--blame-hang
338+
--blame-hang-dump-type full
339+
--blame-hang-timeout 10m
334340
</TestCommand>
335341
<!-- Convert more than one whitespace character into one space -->
336342
<TestCommand>$([System.Text.RegularExpressions.Regex]::Replace($(TestCommand), "\s+", " "))</TestCommand>
@@ -356,6 +362,9 @@
356362
--results-directory $(ResultsDirectory)
357363
--filter "$(FilterStatement)"
358364
--logger:"trx;LogFilePrefix=Functional-Windows$(TargetGroup)-$(TestSet)"
365+
--blame-hang
366+
--blame-hang-dump-type full
367+
--blame-hang-timeout 10m
359368
</TestCommand>
360369
<!-- Convert more than one whitespace character into one space -->
361370
<TestCommand>$([System.Text.RegularExpressions.Regex]::Replace($(TestCommand), "\s+", " "))</TestCommand>
@@ -378,6 +387,9 @@
378387
--results-directory $(ResultsDirectory)
379388
--filter "$(FilterStatement)"
380389
--logger:"trx;LogFilePrefix=Functional-Unixnetcoreapp-$(TestSet)"
390+
--blame-hang
391+
--blame-hang-dump-type full
392+
--blame-hang-timeout 10m
381393
</TestCommand>
382394
<!-- Convert more than one whitespace character into one space -->
383395
<TestCommand>$([System.Text.RegularExpressions.Regex]::Replace($(TestCommand), "\s+", " "))</TestCommand>
@@ -407,6 +419,9 @@
407419
--results-directory $(ResultsDirectory)
408420
--filter "$(FilterStatement)"
409421
--logger:"trx;LogFilePrefix=Manual-Windows$(TargetGroup)-$(TestSet)"
422+
--blame-hang
423+
--blame-hang-dump-type full
424+
--blame-hang-timeout 10m
410425
</TestCommand>
411426
<TestCommand>$(TestCommand.Replace($([System.Environment]::NewLine), " "))</TestCommand>
412427
</PropertyGroup>
@@ -432,6 +447,9 @@
432447
--results-directory $(ResultsDirectory)
433448
--filter "$(FilterStatement)"
434449
--logger:"trx;LogFilePrefix=Manual-Unixnetcoreapp-$(TestSet)"
450+
--blame-hang
451+
--blame-hang-dump-type full
452+
--blame-hang-timeout 10m
435453
</TestCommand>
436454
<TestCommand>$(TestCommand.Replace($([System.Environment]::NewLine), " "))</TestCommand>
437455
</PropertyGroup>

eng/dashboards/ado.net-pipelines-ci-builds-by-branch.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ The branches listed below indicate the repo branch used for the triggered runs.
1717
|MDS Main CI-Package|[internal/release/6.1](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/dotnet-sqlclient?path=%2F&version=GBinternal%2Frelease%2F6.1&_a=contents)|Release|No|Yes|Weekdays 01:00 UTC|YAML|
1818
|MDS Main CI|[internal/release/6.0](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/dotnet-sqlclient?path=%2F&version=GBinternal%2Frelease%2F6.0&_a=contents)|Release|No|Yes|Weekdays 01:00 UTC|YAML|
1919
|MDS Main CI-Package|[internal/release/6.0](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/dotnet-sqlclient?path=%2F&version=GBinternal%2Frelease%2F6.0&_a=contents)|Release|No|Yes|Weekdays 01:00 UTC|YAML|
20-
|MDS 5.1 Servicing|[internal/release/5.1](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/dotnet-sqlclient?path=%2F&version=GBinternal%2Frelease%2F5.1&_a=contents)|Release|No|Yes|Sunday 08:00 UTC|Classic UI|
2120
|Test-SqlClient-Kerberos-Azure|[main](https://github.com/dotnet/SqlClient)|Release|No|No|Mon-Fri 07:00 UTC|Classic UI|
2221
|Test-SqlClient-Kerberos-Azure|[release/6.1](https://github.com/dotnet/SqlClient/tree/release/6.1)|Release|No|No|Mon-Fri 07:00 UTC|Classic UI|
2322
|Test-SqlClient-Kerberos-Azure|[release/6.0](https://github.com/dotnet/SqlClient/tree/release/6.0)|Release|No|No|Mon-Fri 07:00 UTC|Classic UI|
24-
|Test-SqlClient-Kerberos-Azure|[release/5.1](https://github.com/dotnet/SqlClient/tree/release/5.1)|Release|No|No|Mon-Fri 07:00 UTC|Classic UI|
2523
|Test-SqlClient-Managed-Instance|[main](https://github.com/dotnet/SqlClient)|Release|No|No|Daily 03:00 UTC|Classic UI|
2624
|Test-SqlClient-Managed-Instance|[release/6.1](https://github.com/dotnet/SqlClient/tree/release/6.1)|Release|No|No|Daily 03:00 UTC|Classic UI|
2725
|Test-SqlClient-Managed-Instance|[release/6.0](https://github.com/dotnet/SqlClient/tree/release/6.0)|Release|No|No|Daily 03:00 UTC|Classic UI|
26+
|sni-ci|[master](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/Microsoft.Data.SqlClient.sni)|Release|Yes|No|Mon 04:30 UTC|YAML|
27+
|sni-ci|[release/6.0](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/Microsoft.Data.SqlClient.sni?path=%2F&version=GBrelease%2F6.0&_a=contents)|Release|Yes|No|Mon 05:30 UTC|YAML|

eng/dashboards/ado.net-pipelines-official-builds.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@ The branches listed below indicate the repo branch used for the triggered runs.
1010
|Pipeline|Branch|Config|PR Runs|Commit Runs|Scheduled Runs|Source|
1111
|-|-|-|-|-|-|-|
1212
|dotnet-sqlclient-Official|[internal/main](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/dotnet-sqlclient)|Release|No|No|Mon-Fri 03:30 UTC, Sun 04:30 UTC|YAML|
13-
|Microsoft.Data.SqlClient.sni-Official|[master](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/Microsoft.Data.SqlClient.sni)|Release|No|Yes|Mon-Fri 23:00 UTC, Sun 04:00 UTC|YAML|
13+
|dotnet-sqlclient-Official|[internal/release/6.1](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/dotnet-sqlclient?path=%2F&version=GBinternal%2Frelease%2F6.1&_a=contents)|Release|No|No|Mon 05:00 UTC|YAML|
14+
|dotnet-sqlclient-Official|[internal/release/6.0](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/dotnet-sqlclient?path=%2F&version=GBinternal%2Frelease%2F6.0&_a=contents)|Release|No|No|Mon 05:00 UTC|YAML|
15+
|Microsoft.Data.SqlClient.sni-Official|[master](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/Microsoft.Data.SqlClient.sni)|Release|No|Yes|Sat 04:30 UTC|YAML|
16+
|Microsoft.Data.SqlClient.sni-Official|[release/6.0](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/Microsoft.Data.SqlClient.sni?path=%2F&version=GBrelease%2F6.0&_a=contents)|Release|No|Yes|Sat 05:30 UTC|YAML|
1417
|akv-official|N/A|Release|No|No|No|YAML|
1518
|mds-official|N/A|Release|No|No|TBD|YAML|
1619
|Localization-CI|[master](https://sqlclientdrivers.visualstudio.com/ADO.Net/_git/Microsoft.Data.SqlClient), [main](https://github.com/dotnet/SqlClient)|Release|No|No|Daily 19:00 UTC|Classic UI|

eng/dashboards/public-pipelines-ci-builds-by-branch.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,3 @@ PR pipelines run on the topic branch associated to the PR.
2020
|CI-SqlClient-Package|[release/6.1](https://github.com/dotnet/SqlClient/tree/release/6.1)|Release|No|Yes|Sunday 04:30 UTC|YAML|
2121
|CI-SqlClient|[release/6.0](https://github.com/dotnet/SqlClient/tree/release/6.0)|Release|No|Yes|Sunday 06:00 UTC|YAML|
2222
|CI-SqlClient-Package|[release/6.0](https://github.com/dotnet/SqlClient/tree/release/6.0)|Release|No|Yes|Sunday 06:30 UTC|YAML|
23-
|Release 5.1|[release/5.1](https://github.com/dotnet/SqlClient/tree/release/5.1)|Release|Yes|Yes|Sunday 08:00 UTC|Classic UI|

eng/pipelines/common/templates/jobs/ci-run-tests-job.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ jobs:
328328
abstractionsPackageVersion: ${{ parameters.abstractionsPackageVersion }}
329329
mdsPackageVersion: ${{ parameters.mdsPackageVersion }}
330330

331-
- ${{ if and(eq(parameters.publishTestResults, true), eq(parameters.referenceType, 'Project')) }}: # publish test results if build type is project
331+
- ${{ if eq(parameters.publishTestResults, true) }}:
332332
- template: /eng/pipelines/common/templates/steps/publish-test-results-step.yml@self
333333
parameters:
334334
debug: ${{ parameters.debug }}

eng/pipelines/common/templates/steps/build-and-run-tests-netcore-step.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ steps:
6262

6363
- task: DotNetCoreCLI@2
6464
displayName: 'Run Functional Tests for ${{parameters.TargetNetCoreVersion }}'
65+
condition: succeededOrFailed()
6566
inputs:
6667
command: test
6768
projects: 'src\Microsoft.Data.SqlClient\tests\FunctionalTests\Microsoft.Data.SqlClient.FunctionalTests.csproj'
@@ -76,9 +77,13 @@ steps:
7677
--no-build
7778
-v n
7879
--filter "category!=failing&category!=flaky"
80+
--blame-hang
81+
--blame-hang-dump-type full
82+
--blame-hang-timeout 10m
7983
8084
- task: DotNetCoreCLI@2
8185
displayName: 'Run Flaky Functional Tests for ${{parameters.TargetNetCoreVersion }}'
86+
condition: succeededOrFailed()
8287
inputs:
8388
command: test
8489
projects: 'src\Microsoft.Data.SqlClient\tests\FunctionalTests\Microsoft.Data.SqlClient.FunctionalTests.csproj'
@@ -93,10 +98,14 @@ steps:
9398
--no-build
9499
-v n
95100
--filter "category=flaky"
101+
--blame-hang
102+
--blame-hang-dump-type full
103+
--blame-hang-timeout 10m
96104
continueOnError: true
97105

98106
- task: DotNetCoreCLI@2
99107
displayName: 'Run Manual Tests for ${{parameters.TargetNetCoreVersion }}'
108+
condition: succeededOrFailed()
100109
inputs:
101110
command: test
102111
projects: 'src\Microsoft.Data.SqlClient\tests\ManualTests\Microsoft.Data.SqlClient.ManualTesting.Tests.csproj'
@@ -112,10 +121,14 @@ steps:
112121
-v n
113122
--filter "category!=failing&category!=flaky"
114123
--collect "Code Coverage"
124+
--blame-hang
125+
--blame-hang-dump-type full
126+
--blame-hang-timeout 10m
115127
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
116128

117129
- task: DotNetCoreCLI@2
118130
displayName: 'Run Flaky Manual Tests for ${{parameters.TargetNetCoreVersion }}'
131+
condition: succeededOrFailed()
119132
inputs:
120133
command: test
121134
projects: 'src\Microsoft.Data.SqlClient\tests\ManualTests\Microsoft.Data.SqlClient.ManualTesting.Tests.csproj'
@@ -131,5 +144,8 @@ steps:
131144
-v n
132145
--filter "category=flaky"
133146
--collect "Code Coverage"
147+
--blame-hang
148+
--blame-hang-dump-type full
149+
--blame-hang-timeout 10m
134150
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
135151
continueOnError: true

eng/pipelines/common/templates/steps/build-and-run-tests-netfx-step.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ steps:
6262

6363
- task: DotNetCoreCLI@2
6464
displayName: 'Run Functional Tests for ${{parameters.TargetNetFxVersion }}'
65+
condition: succeededOrFailed()
6566
inputs:
6667
command: test
6768
projects: 'src\Microsoft.Data.SqlClient\tests\FunctionalTests\Microsoft.Data.SqlClient.FunctionalTests.csproj'
@@ -77,9 +78,13 @@ steps:
7778
-v n
7879
--filter "category!=failing&category!=flaky"
7980
--collect "Code Coverage"
81+
--blame-hang
82+
--blame-hang-dump-type full
83+
--blame-hang-timeout 10m
8084
8185
- task: DotNetCoreCLI@2
8286
displayName: 'Run Flaky Functional Tests for ${{parameters.TargetNetFxVersion }}'
87+
condition: succeededOrFailed()
8388
inputs:
8489
command: test
8590
projects: 'src\Microsoft.Data.SqlClient\tests\FunctionalTests\Microsoft.Data.SqlClient.FunctionalTests.csproj'
@@ -95,10 +100,14 @@ steps:
95100
-v n
96101
--filter "category=flaky"
97102
--collect "Code Coverage"
103+
--blame-hang
104+
--blame-hang-dump-type full
105+
--blame-hang-timeout 10m
98106
continueOnError: true
99107

100108
- task: DotNetCoreCLI@2
101109
displayName: 'Run Manual Tests for ${{parameters.TargetNetFxVersion }}'
110+
condition: succeededOrFailed()
102111
inputs:
103112
command: test
104113
projects: 'src\Microsoft.Data.SqlClient\tests\ManualTests\Microsoft.Data.SqlClient.ManualTesting.Tests.csproj'
@@ -114,10 +123,14 @@ steps:
114123
-v n
115124
--filter "category!=failing&category!=flaky"
116125
--collect "Code Coverage"
126+
--blame-hang
127+
--blame-hang-dump-type full
128+
--blame-hang-timeout 10m
117129
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
118130

119131
- task: DotNetCoreCLI@2
120132
displayName: 'Run Flaky Manual Tests for ${{parameters.TargetNetFxVersion }}'
133+
condition: succeededOrFailed()
121134
inputs:
122135
command: test
123136
projects: 'src\Microsoft.Data.SqlClient\tests\ManualTests\Microsoft.Data.SqlClient.ManualTesting.Tests.csproj'
@@ -133,5 +146,8 @@ steps:
133146
-v n
134147
--filter "category=flaky"
135148
--collect "Code Coverage"
149+
--blame-hang
150+
--blame-hang-dump-type full
151+
--blame-hang-timeout 10m
136152
retryCountOnTaskFailure: ${{parameters.retryCountOnManualTests }}
137153
continueOnError: true

eng/pipelines/common/templates/steps/configure-sql-server-step.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ steps:
103103
- task: DotNetCoreCLI@2
104104
displayName: 'Build Ext Utilities'
105105
inputs:
106+
command: build
106107
arguments: '-f ${{parameters.netcoreVersionTestUtils }}'
107108
workingDirectory: src/Microsoft.Data.SqlClient/tests/tools/Microsoft.Data.SqlClient.ExtUtilities
108109
retryCountOnTaskFailure: 1

eng/pipelines/common/templates/steps/esrp-code-signing-step.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ steps:
5252
EsrpClientId: '${{parameters.EsrpClientId }}'
5353
UseMSIAuthentication: true
5454
FolderPath: '${{parameters.sourceRoot }}'
55-
Pattern: '*.dll'
55+
Pattern: 'Microsoft.Data.SqlClient*.dll'
5656
CleanupTempStorage: 1
5757
VerboseLogin: 1
5858
- task: EsrpCodeSigning@5
@@ -66,7 +66,7 @@ steps:
6666
AuthAKVName: '${{parameters.AuthAKVName }}'
6767
AuthSignCertName: '${{parameters.AuthSignCertName }}'
6868
FolderPath: '${{parameters.sourceRoot }}'
69-
Pattern: '*.dll'
69+
Pattern: 'Microsoft.Data.SqlClient*.dll'
7070
signConfigType: inlineSignParams
7171
inlineOperation: |
7272
[

0 commit comments

Comments
 (0)