git push to github schlägt fehl mit „error: pack-objects died of signal 967“

Lesezeit: 3 Minuten

Benutzer-Avatar
Jay Dhameliya

Ich habe diesen Befehl ausgelöst:

git push origin master

Ich habe dieses Ergebnis:

Counting objects: 15626, done.
Delta compression using up to 4 threads.
error: pack-objects died of signal 967
error: pack-objects died with strange error

  • Ich überprüfe dies: stackoverflow.com/questions/18559015/…

    – Ankur Jyoti Phukan

    30. Juli 2017 um 7:49 Uhr

  • und dies: stackoverflow.com/q/8672949/2745495

    – Gino Mempin

    30. Juli 2017 um 10:30 Uhr

Benutzer-Avatar
Torek

Es gibt keine Signalnummer 967, aber da ist ein Signal Nummer 9, das ist SIGKILL auf Linux- und Unix-Systemen. Ich glaube, irgendetwas hat eine Zeile gedruckt, die auf endet 67dann eine Wagenrückgabe und dann Ihr Lokal git pack-objects wurde vom “OOM-Killer” getroffen.

Was Sie tun müssen, ist, Ihrem Linux-System (dies ist dein System, nicht das, auf das Sie pushen) mehr Speicher oder kleinere Commits (oder beides). “Speicher” kann in diesem Fall realer, physischer RAM oder virtueller Speicher sein: Auslagerungsspeicher, in den Ihr System ansonsten untätige Speicherinhalte von meist untätigen Programmen schreiben kann, die herumsitzen und den Arbeitsspeicher in Beschlag nehmen. Um mehr physikalischen Speicher zu erhalten, können Sie natürlich mehr DRAM-Chips installieren; oder Sie können einfach alle speicherraubenden Programme beenden, die Sie nicht wirklich weiter ausführen müssen.

Sie können auch die Speichernutzungseinstellungen Ihres Git optimieren, sodass weniger Speicher für die Objektkomprimierung benötigt wird, aber normalerweise gibt es keinen guten Grund dafür (es sei denn, Sie haben eine sehr alte Version von Git: neuere erkennen riesige Binärdateien und nicht einmal Versuch sie zu komprimieren).

Einzelheiten

Wenn Git einen Push durchführt, sehen Sie normalerweise Folgendes:

Counting objects: nnnnn, done.

und:

Compressing objects:  nn% (mmmmm/nnnnn)

Fortschrittsmeldungen, um Ihnen zu versichern, dass Git tatsächlich etwas tut, während dies ansonsten wie eine lange Pause erscheinen könnte. Diese stammen aus git pack-objectswelche git push läuft, um das zu machen, was Git aufruft a dünne Packungum sie an das andere Git zu senden, an das Sie Daten pushen.

Ihr Git hat tatsächlich die Phase „Objekte zählen“ abgeschlossen und ist in die Phase „Objekte komprimieren“ eingetreten, die speicherintensiver ist.

So, git pack-objects druckt fröhlich Fortschrittszeilen:

Compressing objects:  xx% (xxxxx/xxx69)

Es schickt den Cursor nach jedem Ausdruck zurück an den Anfang der Zeile, so dass die nächste Zeile die vorherige überschreibt, sodass schließlich „100% (nnnnn/nnnnn), fertig“ steht. (Und sobald es an diesem Punkt angelangt ist, wird ein Zeilenumbruch gedruckt, nicht nur ein Wagenrücklauf.)

Leider hat Linux – oder was auch immer Sie für ein System verwenden – an diesem Punkt entschieden, dass zu viele Programme zu viel Speicher verwenden, und sich entschieden git pack-objects als Opfer für seinen Mord an Out Of Memory. Es hat abgetötet git pack-objects mit SIGKILLSignal 9.

Dies machte Ihren Push-Druck:

error: pack-objects died of signal 9

über der vorherigen Fortschrittslinie, wobei Folgendes übrig bleibt:

error: pack-objects died of signal 969)

(Hinweis: Ich weiß nicht, was die Ziffern für alle sind x-s waren, außer dass sie unbedingt auf enden müssen 69. Die Fehlermeldung ist nicht vorangestellt von remote:sondern sollen Ende mit signal 967) und nicht nur signal 967.)

Der OOM-Killer bedeutet, dass Ihr System wenig Speicher hat. Die Tatsache, dass es ausgewählt wurde git pack-objects als sein Opfer bedeutet das nicht unbedingt git pack-objects selbst ist die Grund Ihr System hat keinen Arbeitsspeicher mehr. Es war nur der größte Fisch, den das System in dem übervollen Aquarium sah. Linux entscheidet sich dafür, diesen zu eliminieren, anstatt fünf kleinere Fische zu eliminieren.

  • Phänomenale Antwort! Solch ein Einblick und klare Details. Danke.

    – kr37

    13. Mai 2018 um 0:56 Uhr

1011720cookie-checkgit push to github schlägt fehl mit „error: pack-objects died of signal 967“

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy