Tests | Fix SqlBatch Test Deadlocks #3025
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
AI Blurp
This pull request includes changes to the
BatchTests.cs
file to add retry logic for SQL commands and to enhance theSqlBatchCommand
functionality. The most important changes are as follows:Enhancements to SQL retry logic:
SqlRetryLogicOption
andSqlRetryLogicBaseProvider
to handle transient errors like deadlocks by retrying the operation up to three times with a delay of 100 milliseconds.Improvements to
SqlBatchCommand
:StoredProcedureBatchSupported
andMixedBatchSupported
methods to include parameters inSqlBatchCommand
for executing stored procedures, specifically adding a parameter for thesp_help
stored procedure.Additional imports:
System.Collections.Generic
import to support the use ofList<SqlParameter>
in the updated methods.Description
I regularly see deadlocks for the tests that use
sp_help
.I'll try to mitigate this in 2 different ways:
@objname
that does less work so it's less likely to get a deadlockIt can probably also be solved by just using another stored procedure that's not prone to deadlocks, but I chose this way as the easiest path
Example test failure:
https://sqlclientdrivers.visualstudio.com/public/_build/results?buildId=101959&view=logs&j=700ebecb-e440-5400-66bb-488206e790af&t=d8ae6a68-b967-5b1e-ef3d-1b53d82075ee&l=826