Repository navigation
Probe a musl RID and nothing else for the head - #50
Merged
Merged
Conversation
HeadLocator tried the framework's own RID and then linux-{arch}, which is the glibc head, so on Alpine the probe that was meant to miss found an apphost that cannot start. The launcher started it, waited 15 seconds and reported a tray that did not answer, rather than that there is no head for linux-musl-x64. A musl RID now yields itself alone, as NativeResolver and DiffEngine's resolver do.
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.
HeadLocator.Rids()yielded the framework's own RID and then a synthesisedlinux-{arch}. On Alpine the first islinux-musl-x64, which is not shipped, and the second islinux-x64, the glibc head, soFindreturned an apphost that cannot start on musl. The launcher started it detached, waited 15 seconds and printed "The tray did not answer on port N within 15 seconds", instead of the immediate "No BuildMonitor head for linux-musl-x64 under ...".A musl RID now yields itself alone, so
Findreturns null and the launcher reports the missing head. This is the guard DiffEngine has inBundledViewerDirectory.Rids, and the oneNativeResolveris getting for the native library.HeadLocator.Rids()delegates to a newRids(string runtimeIdentifier)that stops after the exact RID when it contains-musl-.HeadLocatorTestsgainsMuslProbesItsOwnRidAndNothingElse(linux-musl-x64,linux-musl-arm64) andOtherRidsStillFallBackToTheSynthesisedRid.Tested with the
HeadLocatorTestsfilter on Windows: 6 passed. Not run on an Alpine machine.