libgit2 / libgit2/libgit2sharp
Internal ArgumentNullException during Repository.Reset
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 have a tool that regularly runs on a repository to migrate changes between several different repositories. As a part of the process, we do a soft reset of a submodule, which periodically (around one time per week) fails with an ArgumentNullException:
Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: SafeHandle cannot be null.
mscorlib.dll!System.StubHelpers.StubHelpers.SafeHandleAddRef(System.Runtime.InteropServices.SafeHandle pHandle, ref bool success) Line 1664
LibGit2Sharp.dll!LibGit2Sharp.Core.Proxy.git_reset(LibGit2Sharp.Core.Handles.RepositorySafeHandle repo, LibGit2Sharp.ObjectId committishId, LibGit2Sharp.ResetMode resetKind, ref LibGit2Sharp.Core.GitCheckoutOpts checkoutOptions) Line 2615
LibGit2Sharp.dll!LibGit2Sharp.Repository.Reset(LibGit2Sharp.ResetMode resetMode, LibGit2Sharp.Commit commit, LibGit2Sharp.CheckoutOptions opts) Line 1002
LibGit2Sharp.dll!LibGit2Sharp.Repository.Reset(LibGit2Sharp.ResetMode resetMode, LibGit2Sharp.Commit commit) Line 985
Unfortunately, I do not have a specific repo; every time this happens a rerun works properly again.
Version Consumed: 0.22. I'm not aware of this happening in an earlier version, but we had enough bugs in the tool itself that it's quite possible we never picked this up in the noise.
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 con Repository.Reset e la chiamata Proxy.git_reset mostrata nello stack trace, usando il contesto LibGit2Sharp 0.22 indicato. Analizza come vengono passati l’handle del repository e gli input del soft reset durante i reset dei sottomoduli; l’issue non fornisce un repository riproducibile, quindi il lavoro è completato quando avrai isolato la causa intermittente del null handle e verificato che il reset non generi più eccezioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp, git
- Ambito
- devtools
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100