lisz-works

プログラミングと興味を貴方に

git pullでerror: pack-objects died of signal 9が発生したので解決

【スポンサーリンク】

Git

こんにちは、lisです!

git pullしようとしたら「error: pack-objects died of signal 9」というエラーが発生して、失敗しました。

いくら実行しても同じエラーでpullされてくれません。

ということで解決方法について調べました。

発生したエラー

下記git pull実行時に出力されるエラーを修正する方法を提示してください。

Auto packing the repository in background for optimum performance.
See "git help gc" for manual housekeeping.
warning: The last gc run reported the following. Please correct the root cause
and remove .git/gc.log.
Automatic cleanup will not be performed until the file is removed.

error: pack-objects died of signal 9
fatal: failed to run repack

解決方法

git configからpack.windowMemoryを設定してあげたら解決しました。

git config --global pack.windowMemory "{size}"

このコマンドの最適値は、PCのスペックやメモリ使用量によって異なるようです。

ぼくはとりあえず、1024MB (1GB)を設定してみました。

git config --global pack.windowMemory "1024m"

pack.windowMemoryについて

pack.windowMemoryは初期値だと無制限に設定されているらしい。

なので、サイズの大きいリポジトリで操作したときにメモリ不足が発生→OSからkillされる……みたいなことが起きているというのが、ざっくりとした原因のようでした。

だからsignal 9で死んだよってエラーメッセージだったんですね。

今回の設定で、使用できるメモリの上限値を設定してあげたので、おおよそ死ぬことはないでしょう。

ただし、設定値が小さいとgit pull等のパフォーマンスが下げる可能性があります。

そのあたりはPCのスペックや、普段の使用状況と相談になりそうですね。

参考

コチラを参考にしました。ありがとうございました!

stackoverflow.com

stacktuts.com

あとがき

みなさまもバカデカリポジトリにはご注意を……