libgit2 / libgit2/libgit2sharp

TypeInitializationException on M1 chip

Aberta
#1,932 3 comentários 2 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
C#
Estrelas
3.5k
Forks
925
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

Reproduction steps

I had a bug report on my project about this.

this is the code that's failing on an M1 chip.

        public static void GitSetup(string solutionDirectory)
        {
            GitBuilder.CreateGitIgnore(solutionDirectory);

            Repository.Init(solutionDirectory);
            var repo = new Repository(solutionDirectory);

            string[] allFiles = Directory.GetFiles(solutionDirectory, "*.*", SearchOption.AllDirectories);
            Commands.Stage(repo, allFiles);

            var author = new Signature("Craftsman", "craftsman", DateTimeOffset.Now);
            repo.Commit("Initial Commit", author, author);
        }
Expected behavior

I should have a new repo created and an initial commit made. This works fine on my intel chip.

Actual behavior

This is the exception that gets thrown

TypeInitializationException: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an
exception.
      In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment
     variable: dlopen(libgit2-106a5f2, 0x0001): tried: 'libgit2-106a5f2' (no such file),
     '/usr/local/lib/libgit2-106a5f2' (no such file), '/usr/lib/libgit2-106a5f2' (no such file),
     '/Users/me/Desktop/code/csharp/libgit2-106a5f2' (no such file),
     '/usr/local/lib/libgit2-106a5f2' (no such file), '/usr/lib/libgit2-106a5f2' (no such file)
       at git_libgit2_init()
       at InitializeNativeLibrary()
       at cctor()
  at git_repository_init_ext(git_repository*& repository, FilePath path, GitRepositoryInitOptions options)
  at git_repository_init_ext(FilePath workdirPath, FilePath gitdirPath, Boolean isBare)
  at Init(String path, Boolean isBare)
  at Init(String path)
  at GitSetup(String solutionDirectory) in Utilities.cs:393
  at CreateNewDomainProject(String domainDirectory, IFileSystem fileSystem, DomainProject domainProject)
     in NewDomainProjectCommand.cs:115
  at Run(String buildSolutionDirectory, IFileSystem fileSystem) in NewExampleCommand.cs:41
Version of LibGit2Sharp (release number or SHA1)

Release: 0.26.2

Operating system(s) tested; .NET runtime tested

OS + .NET version

.NET SDK (reflecting any global.json):
 Version:   6.0.101
 Commit:    ef49f6213a

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  12.1
 OS Platform: Darwin
 RID:         osx.12-arm64
 Base Path:   /usr/local/share/dotnet/sdk/6.0.101/

Host (useful for support):
  Version: 6.0.1
  Commit:  3a25a7f1cc

.NET SDKs installed:
  6.0.101 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download

git version

❯ git --version
git version 2.34.1

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Reproduza a falha no ambiente macOS 12.1 arm64 relatado usando GitSetup em Utilities.cs e, em seguida, inspecione LibGit2Sharp.Core.NativeMethods e o caminho de chamadas por NewDomainProjectCommand.cs e NewExampleCommand.cs. O trabalho estará concluído quando Repository.Init e o commit inicial forem concluídos com sucesso em um chip M1 sem a TypeInitializationException.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
csharp
Domínio
tooling
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.