libgit2 / libgit2/libgit2sharp

Leak when iterating through commits and diff them

Offen
#1,359 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C#
Sterne
3.5k
Forks
925
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

When I run the code below on a production repository, i can see that the memory is all the time increasing and after about 3000 commits my pc crashes with out of memory.

For about 1000 commit it reserved about 500 MB Ram.

Code for Testsetup see here:
https://gist.github.com/Gentlehag/9f595ab13f459e22859fa5d9557e550b

PS: I also posted here:
http://stackoverflow.com/questions/39258639/possible-leak-when-reading-content

My target is to just iterate through all commits and getting all files that were changed in eahc commit.

Is there a better way ? Is this a bug?

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die im GitHub Gist des Issues verlinkte Reproduktion auszuführen, und beobachte den Speicher, während du Commits und Diffs durchgehst. Vergleiche das Verhalten mit der Stack-Overflow-Diskussion und ermittle anschließend, ob das Leck bei der Commit-Iteration oder der Diff-Verarbeitung liegt; abgeschlossen ist die Aufgabe, wenn das Wachstum reproduziert und eine verifizierte Behebung oder dokumentierte Alternative festgestellt wurde.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp, git
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.