Skip to content

Do not resolve a glibc viewer against musl - #788

Merged
SimonCropp merged 1 commit into
mainfrom
fix-musl-rid-fallthrough
Aug 22, 2026
Merged

Do not resolve a glibc viewer against musl#788
SimonCropp merged 1 commit into
mainfrom
fix-musl-rid-fallthrough

Conversation

@SimonCropp

Copy link
Copy Markdown
Member

Rids yields the framework's own RID first, and the comment there explains why
that matters: on Alpine it is linux-musl-x64, which the package does not ship,
so the probe misses and the caller falls through to the dotnet tool rather than
resolving a glibc build against musl.

The synthesised RID below it then undid exactly that. linux-{arch} is yielded
for any Linux, musl included, and that names the glibc build - so the probe hit
after all and handed back an apphost that cannot start. Inline snapshots
survive it, because the launch failure is swallowed and staging takes over, but
a file snapshot whose resolved tool is the viewer throws out of LaunchProcess.

Stop after the framework's own RID when it names musl. Rids takes the identifier
as an argument now so the rule can be tested from any machine, which matters for
a bug whose only natural home is a container nobody runs the suite in.

The same shape is in DiffEngineViewer's NativeResolver.Rids and is not touched
here.

Rids yields the framework's own RID first, and the comment there explains why
that matters: on Alpine it is linux-musl-x64, which the package does not ship,
so the probe misses and the caller falls through to the dotnet tool rather than
resolving a glibc build against musl.

The synthesised RID below it then undid exactly that. linux-{arch} is yielded
for any Linux, musl included, and that names the glibc build - so the probe hit
after all and handed back an apphost that cannot start. Inline snapshots
survive it, because the launch failure is swallowed and staging takes over, but
a file snapshot whose resolved tool is the viewer throws out of LaunchProcess.

Stop after the framework's own RID when it names musl. Rids takes the identifier
as an argument now so the rule can be tested from any machine, which matters for
a bug whose only natural home is a container nobody runs the suite in.

The same shape is in DiffEngineViewer's NativeResolver.Rids and is not touched
here.
@SimonCropp
SimonCropp merged commit bdaa6a7 into main Aug 22, 2026
9 checks passed
@SimonCropp
SimonCropp deleted the fix-musl-rid-fallthrough branch August 22, 2026 00:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant