Legacy DAC SyncBlock data is unavailable for macOS x64 .NET 11 dumps
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 55/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- cpp
调研方向
使用列出的运行时和 DAC 选项,通过 dotnet-dump analyze heap.dmp 重现,然后检查指定的 SOS.Tests.SpecializedInspectionTests.SyncBlk_ReportsInflatedMonitor 和 GcInspectionTests.VerifyHeap_ReportsNoCorruption 配置。将 macOS x64 上使用 legacy-DAC 的行为与 cDAC、LLDB 和 Ubuntu 上通过的运行进行比较。当 syncblk 列出被持有的 SyncBlock,且 verifyheap 报告 0 个错误并且未检测到堆损坏时,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Description
When a macOS x64 .NET 11 dump is analyzed with dotnet-dump and the matching legacy DAC, SyncBlock data is unavailable. This causes two deterministic SOS failures against the same capture-family dump.
syncblk fails instead of listing an intentionally inflated, held monitor:
> syncblk
Error requesting SyncBlk data
verifyheap consequently reports apparent heap corruption for an object whose SyncBlock cannot be found:
Segment Object Failure Reason
00058acda2d0 00018c4052f8 SyncBlockMismatch Object 18c4052f8 System.Object had a SyncBlock index of 1 but the runtime has no matching SyncBlock
1,154 objects verified, 1 error.
Expected behavior:
syncblklists the held SyncBlock withMonitorHeld > 0.verifyheapreports0 errorsandNo heap corruption detected.
Minimal replay:
dotnet-dump analyze heap.dmp
> runtimes --usecdac false --DacSignatureVerification false
> syncblk
> verifyheap
The failures reproduce in both Debug and Release SOS.Tests runs. Corresponding cDAC and LLDB configurations pass against the identical capture-family dump. The exact legacy-DAC dotnet-dump configurations also pass on Ubuntu, indicating that capture/transfer corruption is not involved and that this is macOS-specific.
Configuration
- Tool:
dotnet-dump - Host: macOS 15 x64 (
osx.15.amd64.open) - Target runtime: .NET
11.0.26.42702; product layout11.0.0-rc.2.26426.102 - Target: Core framework-dependent debuggee
- GC: Workstation
- Analysis mode: Heap dump
- DAC: matching legacy
libmscordaccore.dylib - Test configurations:
SOS.Tests.SpecializedInspectionTests.SyncBlk_ReportsInflatedMonitor(config: scenarios/DotnetDump/Core/net11/Dump/Workstation/Heap)SOS.Tests.GcInspectionTests.VerifyHeap_ReportsNoCorruption(config: scenarios/DotnetDump/Core/net11/Dump/Workstation/Heap)
- Observed in dotnet/diagnostics#5981
- Helix jobs:
Regression?
This does not appear entirely new. Diagnostics tests have skipped Unix syncblk validation since 667723e0 in October 2019, with the comment:
On Linux/MacOS we sometimes get "Error requesting SyncBlk data" error from the DAC.
The new SOS.Tests harness makes the failure deterministic for this .NET 11 macOS scenario and also exposes the associated verifyheap false positive.
Other information
- stderr is empty.
- The matching runtime and legacy DAC load successfully.
- Other SOS commands work in the same
dotnet-dumpsession. - Ubuntu Debug and Release both pass these exact .NET 11 legacy-DAC configurations.
- This is distinct from dotnet/runtime#124691, which implemented the cDAC
GetSyncBlockDataAPI. - Related historical issue: dotnet/runtime#11407, which enabled
syncblkon Unix.
- 主要语言
- C++
- 星标
- 1.3k
- 派生
- 407
- 平均合并
- 21 小时 5 分钟
- 30 天内合并 PR
- 78
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 没有贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
dotnet/diagnostics 的其他 Issue
-
Fix StackAndOtherTests.script line number verification for .NET 11 and Windows x64可能重新可做 关联的 PR 已关闭且未合并。 未关闭
难度 2/5 1-3 小时 新手友好度 65/100
dotnet/diagnostics#5884 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 25/100
dotnet/diagnostics#6225 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 48/100
dotnet/diagnostics#6213 ·
维护者通常 1 天内回复
-
Isolate SOS hosting from other debugger extensions that use managed code可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭bug
难度 5/5 一周以上 新手友好度 25/100
dotnet/diagnostics#6207 ·
维护者通常 1 天内回复
-
Known Build Error
难度 4/5 3-5 天 新手友好度 49/100
dotnet/diagnostics#6190 ·
维护者通常 1 天内回复
查看 dotnet/diagnostics 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
AutoHotkey/AutoHotkey#380 ·
-
documentation
难度 1/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 69/100
grumpycoders/pcsx-redux#2667 ·
-
GCC 15.2: -Wcast-qual warning - cast discards const qualifier from pointer target type (H5trace.c)未关闭
难度 2/5 1-3 小时 新手友好度 73/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
google/tensorstore#305 ·