libgit2 / libgit2/libgit2sharp
Git clone causes an "SSL error: syscall failure:" with a specific repo
Nessuno ha ancora preso questa issue.
- Lingua principale
- C#
- Stelle
- 3.5k
- Fork
- 925
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia dal percorso di clonazione che non funziona in Core/Proxy.cs:278 e Repository.cs:824, quindi esamina i controlli degli errori in Core/Ensure.cs:154 e :172. Riproduci il problema, se possibile, su Alpine Linux con .NET 8 usando il repository privato e la configurazione di autenticazione indicati. Il lavoro è completo quando viene identificata la causa e la clonazione riesce, oppure viene segnalato un errore più utile.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp, git
- Ambito
- devtools
- Tipo di issue
- Bug
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100