Skip to content

Fix the listing benchmark on .NET 11 and build it in CI - #180

Merged
HarryCordewener merged 1 commit into
mainfrom
claude/dotnet-11-followups
Sep 11, 2026
Merged

Fix the listing benchmark on .NET 11 and build it in CI#180
HarryCordewener merged 1 commit into
mainfrom
claude/dotnet-11-followups

Conversation

@HarryCordewener

Copy link
Copy Markdown
Member

Follow-up to #179 (.NET 11 RC 1). This comes from a sweep of what the version change could have broken outside the files #179 touched.

Fixed

  • tools/MUI.Listing.Benchmarks was broken on main. It pinned net10.0 over Directory.Build.props and references tests/MUI.Web.Tests, which Move to .NET 11 release candidate 1 #179 retargeted to net11.0. Restore fails with NU1201: Project MUI.Web.Tests is not compatible with net10.0. CI couldn't notice: the tool was never in MUIndex.slnx, while docs/memory-incident-2026-09-07.md tells readers to run it. The pin goes, and the tool joins the solution beside MUI.Streaming.Prototype, so CI now builds it. Run as the doc says, it prints 0.45/0.41 MB per facet request and 5.92 MB per 900-row render, matching the doc's table.
  • The ModelContextProtocol.AspNetCore comment justified the pin by the runtimes the package's nuspec names. 2.2.0 is still the newest release and names nothing past net10.0, so on .NET 11 its net10.0 asset is what resolves. MUI.Web.Tests' MCP cases show that runs. The comment now says so, and says to move to the first release that names net11.0.

Checked and found fine: nothing in deploy/ needed changing

  • Crash dumps. deploy/compose.production.yaml sets DOTNET_DbgEnableMiniDump=1, DOTNET_DbgMiniDumpType=2 and DOTNET_DbgMiniDumpName=/dumps/muindex-%p.dmp. I ran a deliberate Environment.FailFast in the RC 1 SDK image with exactly those settings. createdump (runtime 11.0.0-rc.1.26425.128) wrote a 52 MB /dumps/muindex-<pid>.dmp.
  • Volume ownership. The dumps and Data Protection keys volumes were created by the .NET 10 image as its app user. aspnet:11.0.0-rc.1 has the same user: app:x:1654:1654::/home/app, identical to aspnet:10.0, with APP_UID=1654. So the existing volumes stay writable. Had the UID moved, Data Protection would silently fall back to ephemeral keys, which is the antiforgery-400 incident the Dockerfile documents.
  • deploy/memory-watch.sh reads cgroup files and /proc; nothing in it depends on the runtime. deploy/muindex.service, the Traefik config and the I3 sidecar config don't reference .NET at all.
  • GC and memory limits. Nothing in deploy/ sets DOTNET_GC*; the runtime reads the cgroup limit as before.

Verification

  • dotnet build MUIndex.slnx -c Release: 0 warnings, 0 errors, now including the benchmark.
  • tools/check-image-restore.py passes; the image's restore set is unchanged.

🤖 Generated with Claude Code

…ot recur

tools/MUI.Listing.Benchmarks pinned net10.0 over Directory.Build.props and references
tests/MUI.Web.Tests, which the .NET 11 move retargeted -- so on main it fails restore with NU1201
("MUI.Web.Tests is not compatible with net10.0"). Nothing noticed because it was never in
MUIndex.slnx, so CI never built it, while docs/memory-incident-2026-09-07.md tells readers to run
it. The pin goes, it inherits net11.0, and it joins the solution beside MUI.Streaming.Prototype.
Run as the doc says: 0.45/0.41 MB per facet request and 5.92 MB per 900-row render, matching the
doc's table.

Also corrects ModelContextProtocol.AspNetCore's comment, which justified its pin by the runtimes
its nuspec names. 2.2.0 is still the newest release and names nothing past net10.0, so on .NET 11
its net10.0 asset is what resolves; MUI.Web.Tests' MCP cases show that runs.

Checked while here and found fine: production's DOTNET_DbgEnableMiniDump settings still produce a
dump on the .NET 11 RC 1 runtime (a deliberate FailFast wrote /dumps/muindex-<pid>.dmp), and the
aspnet image's app user is unchanged at UID 1654 with home /home/app, so the dumps and
Data Protection volumes the .NET 10 image created stay writable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 11, 2026

Copy link
Copy Markdown

Warning

Review limit reached

  • Run on-demand review

On-demand reviews are free for the next 28 days. After that, they cost $0.25 per reviewed file.

Or wait 41 minutes for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 95 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Essentials

Run ID: bdd9d22e-4cd8-4f28-baac-c27b6a425fad

📥 Commits

Reviewing files that changed from the base of the PR and between 2454d75 and c54b395.

📒 Files selected for processing (3)
  • Directory.Packages.props
  • MUIndex.slnx
  • tools/MUI.Listing.Benchmarks/MUI.Listing.Benchmarks.csproj

Comment @coderabbitai help to get the list of available commands.

@HarryCordewener
HarryCordewener merged commit f670e8f into main Sep 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant