We have discovered a bug in Microsoft.Data.SqlClient that affects DTC transactions on .NET Framework.
You are affected if all of the following 4 points are true:
- You use one of these Particular Software packages:
- You use the Microsoft.Data.SqlClient package
- Your version for the Microsoft.Data.SqlClient package is either 2.1.3 or 3.0.0.
- You use distributed transactions
These versions of the Microsoft.Data.SqlClient package contain a bug in the DTC implementation that can cause threads to deadlock when a
TransactionScope is disposed. This is not a database deadlock, but instead the in-memory thread locks up and cannot proceed past the point where the transaction is disposed.
We have raised an issue with Microsoft including steps to reproduce the issue. Microsoft has confirmed and reproduced the bug and promised to investigate.
Here is what you should do for the time being:
- If you have not upgraded past Microsoft.Data.SqlClient 2.1.2, don’t upgrade.
- If you have already upgraded to Microsoft.Data.SqlClient 2.1.3 or later, downgrade to version 2.1.2.
If you have any questions or concerns, please reach out to us at email@example.com.