[cDAC] Implement GetThreadOwningMonitorLock for cDAC#128966
Merged
barosiak merged 3 commits intoJun 5, 2026
Merged
Conversation
Contributor
|
Tagging subscribers to this area: @steveisok, @tommcdon, @dotnet/dotnet-diag |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR implements the IDacDbiInterface.GetThreadOwningMonitorLock path in the managed cDAC (DacDbiImpl) and adds xUnit coverage for “lock held” vs “lock not held” scenarios using mocked IObject/ISyncBlock/IThread contracts.
Changes:
- Implement
GetThreadOwningMonitorLockby reading sync-block lock info, then resolving the owningThreadbyThreadData.Id, with#if DEBUGparity validation against the legacy DAC implementation. - Add a new
[Theory]to validate returnedDacDbiMonitorLockInfo.lockOwnerandacquisitionCountfor held/unheld cases across standard mock architectures.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Legacy/Dbi/DacDbiImpl.cs | Adds the cDAC implementation of GetThreadOwningMonitorLock with legacy parity validation under #if DEBUG. |
| src/native/managed/cdac/tests/DacDbiImplTests.cs | Adds xUnit coverage for lock-held vs lock-not-held behavior across architectures using mocked contracts. |
noahfalk
approved these changes
Jun 4, 2026
Member
noahfalk
left a comment
There was a problem hiding this comment.
LGTM assuming we fix that pre-existing DAC bug.
lateralusX
reviewed
Jun 4, 2026
Member
Author
|
/ba-g unrelated failures, timeouts |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Implement
GetThreadOwningMonitorLockinDacDbiImpl.Changes
DacDbiImpl.cs- ImplementGetThreadOwningMonitorLockwith#if DEBUGlegacy validation.DacDbiImplTests.cs- Add 8 tests for lock-not-held and lock-held scenarios.