Open v-wenyuxu opened 3 months ago
Tagging subscribers to this area: @roji, @ajcvickers See info in area-owners.md if you want to be subscribed.
@jkotas I'm perplexed at how this can happen. Any insight?
Since this isn't happening in any current runs, I'm going to close.
I'm perplexed at how this can happen. Any insight?
This is a bug in TransationManager.
TransationManager.DefaultTimeOut
is a global static. What can happen is:
This is a product bug. Reading the default timeout value on one thread should not lead to default value set on the on a different thread to be lost.
The bug is caused by mixing of lock used by LazyInitializer.EnsureInitialized
and Interlocked
operations that does not provide the thread safety desired here. Either both places should use lock
or both places should use Interlocked
operations.
This does not always repro, but it reproes often enough that we have seen the same issue filled in the past (e.g. https://github.com/dotnet/runtime/issues/90085).
This bug was introduced in #71703. cc @imcarolwang @HongGit
@HongGit - assigning to you for tracking. Please adjust milestone based on your investigation and estimated timeline for the fix.
Failed in: runtime-coreclr crossgen2 20240717.1
Failed tests:
Error message:
Stack trace:
Known Issue Error Message
Fill the error message using step by step known issues guidance.
Known issue validation
Build: :mag_right: https://dev.azure.com/dnceng-public/public/_build/results?buildId=745900 Error message validated:
[at System.Transactions.Tests.TransactionManagerTest.DefaultTimeout_MaxTimeout_Set_Get
] Result validation: :white_check_mark: Known issue matched with the provided build. Validation performed at: 7/24/2024 6:15:28 PM UTCReport
Summary