Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git fatal: pack has bad object at offset X: inflate returned -5

Tags:

git

zlib

inflate

Git has given me a lovely christmas gift... I'm trying to git push a bunch of commits, like 6 GB. And I'm getting the following error message:

-Counting objects: 525, done.
Delta compression using up to 24 threads.
Compressing objects: 100% (474/474), done.
fatal: pack has bad object at offset 3453162391: inflate returned -5
error: pack-objects died of signal 13
error: failed to push some refs to ....git

What does this mean and how is it fixed? From Google I can tell it has something to do with the size of what I'm trying to push.

This happened while it was writing.

like image 889
Andrew Latham Avatar asked Dec 26 '14 05:12

Andrew Latham


1 Answers

Based on your offset, it looks like you're trying to push some really big object (offset 3453162391 =~ >= 3GB), so zlib failed on inflating/compressing the object since there was not enough room in the output buffer (error: Z_BUF_ERROR).

This could be related to temporary lack of memory, or some buffer limits. Basically it's trying to process as much input as possible using the available output, otherwise it returns Z_BUF_ERROR. See: zlib inflate returning a buffer error.

You should re-try to see if the problem can be reproduced.

If the issue is repeatable, then try to:

  • avoid pushing large files into git repository, Git was designed to track the source code files, not very large files (like 6GB),

  • increase git message size on your client http.postBuffer, e.g.

    git config http.postBuffer 134217728 # =~ 128MB
    
  • use some alternative client which can ignore larger blobs, such as bfg, e.g.

    java -jar bfg.jar --strip-blobs-bigger-than 100M some-big-repo.git
    
  • remove the object which is causing the issue (git gc?).

Other potential issues could include:

  • a git bug, since according to zlib manual, the command shouldn't abort on Z_BUF_ERROR,
  • old kernel bug (<= 2.6.32-rc4).

For further readings, check this post: “pack has bad object” when pushing to remote.


If you'd like to work with large files with Git, check the followings:

  • GitHub: Announcing Git Large File Storage (LFS) & Git Large File Storage (LFS)
  • Git with large files
like image 149
kenorb Avatar answered Nov 05 '22 16:11

kenorb