libgit2 / libgit2/libgit2sharp
Git clone causes an "SSL error: syscall failure:" with a specific repo
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
We are going to have to dump this library for this issue and move to using the cli instead. I figured I'd report this issue so maybe in the future someone can get around to fixing it. The issues has been reported before and have been open for over 4 years.
With a specific private repo, this error happens only on Alpine Linux in a container running as an ACA Job in Azure.
Authentication is being used (Personal Access Token) with the user of "default"
"[Message] SSL error: syscall failure: "
No other logging or error message.
Reproduction steps
This is extremely difficult to reproduce. I don't even know what it is about this specific repo that is causing the problem as other, repos owned by the same company using the same token, clone fine.
If I run locally in docker desktop, it does not crash. Everything else being equal.
I see others have reported the same issue and the bug has been open for years.
https://github.com/libgit2/libgit2sharp/issues/1262
Running the same user/token and URL from the cli git client works without issues.
git clone https:{user}:{token}@github.com/path/to/repo
I'm doing some digging to see if I can get more info about why it's happening.
I was able to get a detailed stacktrace from the service.
[Exception]: [07/31/2024 23:56:31]: (/_/LibGit2Sharp/Core/Ensure.cs):(154)
[Exception]: [07/31/2024 23:56:31]: (/_/LibGit2Sharp/Core/Ensure.cs):(172)
[Exception]: [07/31/2024 23:56:31]: (/_/LibGit2Sharp/Core/Proxy.cs):(278)
[Exception]: [07/31/2024 23:56:31]: (/_/LibGit2Sharp/Repository.cs):(824)
at LibGit2Sharp.Core.Proxy.git_clone(String url, String workdir, GitCloneOptions& opts) in //LibGit2Sharp/Core/Proxy.cs:line 278
at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, CloneOptions options) in //LibGit2Sharp/Repository.cs:line 824
Here is some feedback. The logging isn't very good in this function that's checking the response code from the code repository. If we could see the code that is being returned (and it doesn't seem to the HTTP OK) then we would have a better understanding about what the issue is.
This morning (8/1/2024) I implemented a cli version of git and it had no issues cloning from the ACA Job on the specific repo.
Expected behavior
The repo clones
Actual behavior
The library crashes
Version of LibGit2Sharp (release number or SHA1)
0.30
Operating system(s) tested; .NET runtime tested
Alpine Linux .NET 8.0
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece pelo caminho de clone que está falhando em Core/Proxy.cs:278 e Repository.cs:824 e, em seguida, inspecione as verificações de erro em Core/Ensure.cs:154 e :172. Reproduza o problema, se possível, no Alpine Linux com .NET 8 usando o repositório privado e a configuração de autenticação informados. O trabalho estará concluído quando a causa for identificada e o clone funcionar ou quando um erro mais acionável for reportado.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- csharp, git
- Domínio
- devtools
- Tipo de issue
- Bug
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Estagnada
- Clareza
- Precisa de esclarecimento
- Facilidade para iniciantes
- 25/100