Skip to content

ref: Record that Android assembly store v4 never shipped - #5609

Merged
jamescrosswell merged 1 commit into
feat/assemblystore-index-sizingfrom
ref/assemblystore-v4-never-shipped
Sep 23, 2026
Merged

jamescrosswell merged 1 commit into
feat/assemblystore-index-sizingfrom
ref/assemblystore-v4-never-shipped

Conversation

@jamescrosswell

Copy link
Copy Markdown
Collaborator

Stacked on #5577 — this PR's diff is only the comment/attribution corrections and one added test case.

Closes #5604

Summary

#5604 flagged a new commit under the upstream code we vendor into src/Sentry.Android.AssemblyReader/: 8f7c4d4, "[CoreCLR] Remove assembly store decompression cache" (dotnet/android#12780). Reviewing it: it does affect us, and in our favour.

Upstream remeasured the opt-in decompression cache and found it made startup worse (+162 ms TTID, +179 ms TTFD), so they removed it — and with it the content_id header field it needed, restoring assembly store format version 3 for both CoreCLR and MonoVM. Verified on dotnet/android main:

  • AssemblyStoreGenerator.cs emits ASSEMBLY_STORE_FORMAT_VERSION_CORECLR_64BIT = 0x80000003
  • StoreReader_V2.Classes.cs has no content_id; Header.NativeSize is a flat 5 * sizeof(uint) const
  • StoreReader_V2.cs no longer lists the _V4 | ABI versions, and has dropped ASSEMBLY_STORE_FORMAT_NUMBER_MASK

main is the .NET 11 branch — there is no release/11.0.1xx, and eng/Versions.props carries AndroidPackVersion 37.2.0 with suffix rc.2. The revert (2026-09-15) predates rc.2, while our global.json pins 11.0.100-rc.1 / workload 11.0.100-rc.1.26458.5 (2026-09-08), the last build that emitted v4. So v4 never shipped, and .NET 11 GA will emit v3.

What this means for the stack

Changes

  • File headers in StoreReader.cs / StoreReader.Classes.cs and V2/ATTRIBUTION.txt said v4 "ships in .NET 11". It doesn't — they now say previews only, and record the revert as a sync point.
  • The // Must match the ASSEMBLY_STORE_FORMAT_VERSION native constant note on the v4 constant is stale; no native constant has that value any more.
  • StoreReaderTests had a synthetic v4 64-bit store with 32-bit hashes but no v3 equivalent — i.e. no coverage of the shape .NET 11 GA will actually produce. Added.

🤖 Generated with Claude Code

dotnet/android#12780 removed the opt-in decompression cache and restored
assembly store format version 3 for CoreCLR, so v4 only ever existed in
.NET 11 previews. Correct the vendored file headers and ATTRIBUTION,
which claimed v4 ships in .NET 11.

.NET 11 GA emits v3 with CoreCLR's 32-bit CRC32 name hashes on 64-bit
ABIs - a shape the synthetic store tests did not cover. Add it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jamescrosswell jamescrosswell added the skip-changelog Suppress automatic changelog generation via Craft label Sep 22, 2026
@codecov

codecov Bot commented Sep 22, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 74.80%. Comparing base (8877577) to head (a4f9683).
⚠️ Report is 4 commits behind head on feat/assemblystore-index-sizing.

Additional details and impacted files
@@                         Coverage Diff                         @@
##           feat/assemblystore-index-sizing    #5609      +/-   ##
===================================================================
- Coverage                            74.90%   74.80%   -0.11%     
===================================================================
  Files                                  515      515              
  Lines                                18916    18916              
  Branches                              3693     3693              
===================================================================
- Hits                                 14169    14150      -19     
- Misses                                3872     3890      +18     
- Partials                               875      876       +1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jamescrosswell jamescrosswell added this to the 7.0.0 milestone Sep 22, 2026
@jamescrosswell
jamescrosswell marked this pull request as ready for review September 23, 2026 23:11
@jamescrosswell
jamescrosswell merged commit 79b8f74 into feat/assemblystore-index-sizing Sep 23, 2026
41 of 42 checks passed
@jamescrosswell
jamescrosswell deleted the ref/assemblystore-v4-never-shipped branch September 23, 2026 23:11
@github-actions github-actions Bot added the risk: low PR risk score: low label Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk: low PR risk score: low skip-changelog Suppress automatic changelog generation via Craft

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Upstream change detected: dotnet/android .github/skills/read-assembly-store/src/AssemblyStore @ 8f7c4d4

1 participant