libgit2 / libgit2/libgit2sharp

Crash in git_diff_tree_to_index when calling Repository.RetrieveStatus

Ouverte
#1,755 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
C#
Étoiles
3.5k
Forks
925
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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.

  1. download this: libgit2-git_diff_tree_to_index-Crash.zip
  2. download Unity 2019.3.0f5 (other versions crash as well)
  3. open the above project
  4. select menu item "Git Error/RetrieveStatus - CRASH"
  5. 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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le projet de reproduction Unity joint et l’appel Repository.RetrieveStatus décrit dans l’issue. Examinez la pile du crash natif autour de git_diff_tree_to_index et git_status_list_new, puis vérifiez sous Windows 10 que la reproduction ne plante plus et renvoie RepositoryStatus.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp, git, unity
Domaine
devtools
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.