-
Notifications
You must be signed in to change notification settings - Fork 2.5k
invalid config path selector 1874839136 #6255
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Maybe this has some relevance: https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms#//apple_ref/doc/uid/TP40013702-SW1 |
Looks like LibGit2Sharp is erroneously casting an |
Thanks for the quick reply! I just tried to change the uint to int, but the result is the same exception. |
This is now fixed in libgit2/libgit2sharp#1955 The problem are the variadic arguments passed to git_libgit2_opts. On arm64 they need to be padded to start from the 9th argument. The solution is not particularly pretty, but this seems to be the best option at the moment). See also for more on this issue: |
This is a duplicate of libgit2/libgit2sharp#1951 (for libgit2sharp), but I think it is probably an issue with libgit2 more than with libgit2sharp (at least it's unclear to me what to do about it on the managed end).
When trying to run the libgit2sharp tests (freshly cloned repo) on my Apple Silicon Mac (arm64), using the arm64 version of the .NET 6 SDK, all tests fail with an exception. If I use the x64 SDK, it runs just fine.
Reproduction steps
Just clone the libgit2sharp repo, add binaries NuGet package libgit2sharp.nativebinaries try to run tests.
Expected behavior
Tests should pass.
Actual behavior
LibGit2Sharp.LibGit2SharpException
invalid config path selector 1874839136
at LibGit2Sharp.Core.Ensure.HandleError(Int32 result) in /Playground/libgit2sharp/LibGit2Sharp/Core/Ensure.cs:line 154
at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result) in /Playground/libgit2sharp/LibGit2Sharp/Core/Ensure.cs:line 172
at LibGit2Sharp.Core.Proxy.git_libgit2_opts_set_search_path(ConfigurationLevel level, String path) in /Playground/libgit2sharp/LibGit2Sharp/Core/Proxy.cs:line 3436
at LibGit2Sharp.GlobalSettings.SetConfigSearchPaths(ConfigurationLevel level, String[] paths) in /Playground/libgit2sharp/LibGit2Sharp/GlobalSettings.cs:line 337
at LibGit2Sharp.Tests.TestHelpers.BaseFixture.BuildFakeConfigs(IPostTestDirectoryRemover dirRemover) in /Playground/libgit2sharp/LibGit2Sharp.Tests/TestHelpers/BaseFixture.cs:line 125
at LibGit2Sharp.Tests.TestHelpers.BaseFixture..ctor() in /Playground/libgit2sharp/LibGit2Sharp.Tests/TestHelpers/BaseFixture.cs:line 20
at LibGit2Sharp.Tests.ArchiveTarFixture..ctor()
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean wrapExceptions)
This is here:
level
is 4, but seems to get marshalled wrong to libgit2 (where it seems to arrive as 1874839136).In libgit2 this seems to arrive at the following function in
libgit2.c
:then it goes to
and this seems to produce this error.
Version of libgit2 and LibGit2Sharp (release number or SHA1)
Libgit2Sharp: 1e6da83ab8c47058b5b4ef1e4e28e4732de44db0
Libgit2: b7bad55 (that's what's included in the libgit2 binaries package)
Operating system(s) tested; .NET runtime tested
MacOS Monterey 12.3, Apple Silicon, .NET 6 Arm64 SDK
The text was updated successfully, but these errors were encountered: