libgit2 / libgit2/libgit2sharp
Crash in git_diff_tree_to_index when calling Repository.RetrieveStatus
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 3.5k
- Forks
- 925
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I originally raised this bug with libgit2 directly but response was that this is in fact a libgit2sharp error.
https://github.com/libgit2/libgit2/issues/5363
Reproduction steps
Use Repository.RetrieveStatus from libgit2sharp from inside Unity3D editor script.
- download this: libgit2-git_diff_tree_to_index-Crash.zip
- download Unity 2019.3.0f5 (other versions crash as well)
- open the above project
- select menu item "Git Error/RetrieveStatus - CRASH"
- note native crash, with the log below
Expected behavior
No crash, instead returns RepositoryStatus
Actual behavior
git2-106a5f2.dll caused an Access Violation (0xc0000005)
in module git2-106a5f2.dll at 0033:7cb4ae65.
Stack Trace of Crashed Thread 9380:
0x00007FFC7CB4AE65 (git2-106a5f2) git_diff_tree_to_index
0x00007FFC7CBB4B09 (git2-106a5f2) git_status_list_new
0x0000028C392EADBF (LibGit2Sharp) LibGit2Sharp.Core.NativeMethods.git_status_list_new()
0x0000028C392EAB9B (LibGit2Sharp) LibGit2Sharp.Core.Proxy.git_status_list_new()
0x0000028C392E57FB (LibGit2Sharp) LibGit2Sharp.RepositoryStatus..ctor()
0x0000028C392E49FB (LibGit2Sharp) LibGit2Sharp.Repository.RetrieveStatus()
Version of LibGit2Sharp (release number or SHA1)
git2-106a5f2, but also happens with e.g. git2-7ce88e6 (happened with all versions I tried).
Operating system(s) tested; .NET runtime tested
Windows 10
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit dem beigefügten Unity-Reproduktionsprojekt und dem im Issue beschriebenen Aufruf Repository.RetrieveStatus. Überprüfen Sie den nativen Absturz-Stack im Bereich von git_diff_tree_to_index und git_status_list_new und verifizieren Sie anschließend unter Windows 10, dass die Reproduktion nicht mehr abstürzt und RepositoryStatus zurückgibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp, git, unity
- Bereich
- devtools
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 30/100