{"thread":{"id":"32125","subject":"Crash when pushing large binary file","startedAt":"2012-11-16T05:44:32Z","lastAt":"2012-11-20T11:37:35Z","messageCount":5,"participants":["Thomas Gay","Nguyen Thai Ngoc Duy"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"203330","messageId":"CA+AoP-n07k0r11O6ShOT8jHiX+TL+=p8sZoei+Gi+9gG_YyJqA@mail.gmail.com","threadId":"32125","inReplyTo":null,"subject":"Crash when pushing large binary file","fromName":"Thomas Gay","fromEmail":"tgay@tokyois.com","sentAt":"2012-11-16T05:44:32Z","receivedAt":"2012-11-16T05:44:32Z","isPatch":false,"sender":{"key":"tgay@tokyois.com","avatar":null},"body":"Using Git 1.8 on Mac OS X 10.7.5. I just added a large binary file to\nmy repo, and each time I try to push it, Git crashes. I've attached\nthe crash log to this email and pasted the console output below.\n\nCounting objects: 27, done.\nDelta compression using up to 4 threads.\nCompressing objects: 100% (16/16), done.\nerror: unpack-objects died of signal 11 | 76.91 MiB/s\nerror: pack-objects died of signal 13\nerror: failed to push some refs to 'ssh://...'\n\n-Tom\n"},{"id":"203331","messageId":"CACsJy8AAd0odtLDiZ+A+MhX1En_G97gF2uoHjVeJvekznY3JSw@mail.gmail.com","threadId":"32125","inReplyTo":"CA+AoP-n07k0r11O6ShOT8jHiX+TL+=p8sZoei+Gi+9gG_YyJqA@mail.gmail.com","subject":"Re: Crash when pushing large binary file","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2012-11-16T06:25:04Z","receivedAt":"2012-11-16T06:25:04Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Fri, Nov 16, 2012 at 12:44 PM, Thomas Gay <tgay@tokyois.com> wrote:\n> Using Git 1.8 on Mac OS X 10.7.5. I just added a large binary file to\n\nHow large exactly?\n\n> my repo, and each time I try to push it, Git crashes. I've attached\n> the crash log to this email and pasted the console output below.\n>\n> Counting objects: 27, done.\n> Delta compression using up to 4 threads.\n> Compressing objects: 100% (16/16), done.\n> error: unpack-objects died of signal 11 | 76.91 MiB/s\n> error: pack-objects died of signal 13\n> error: failed to push some refs to 'ssh://...'\n\nIf you set receive.unpacklimit to 1 on the receiving end, does it still crash?\n-- \nDuy\n"},{"id":"203332","messageId":"CA+AoP-keNcjGLtxbb9t7sggur1e+XmbMN5apVJfEdfhqU2-JGQ@mail.gmail.com","threadId":"32125","inReplyTo":"CACsJy8AAd0odtLDiZ+A+MhX1En_G97gF2uoHjVeJvekznY3JSw@mail.gmail.com","subject":"Re: Crash when pushing large binary file","fromName":"Thomas Gay","fromEmail":"tgay@tokyois.com","sentAt":"2012-11-16T06:54:04Z","receivedAt":"2012-11-16T06:54:04Z","isPatch":false,"sender":{"key":"tgay@tokyois.com","avatar":null},"body":"Thanks for the quick reply!\n\nOn Fri, Nov 16, 2012 at 3:25 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:\n> On Fri, Nov 16, 2012 at 12:44 PM, Thomas Gay <tgay@tokyois.com> wrote:\n>> Using Git 1.8 on Mac OS X 10.7.5. I just added a large binary file to\n>\n> How large exactly?\n\n2.46 GB\n\n> If you set receive.unpacklimit to 1 on the receiving end, does it still crash?\n\nYes. The crash log looks the same too.\n\n-Tom\n"},{"id":"203335","messageId":"CACsJy8DsKc5_i6VKeYv69ikQXQPwEh3UOa5_bLaa4ss5vLxOng@mail.gmail.com","threadId":"32125","inReplyTo":"CA+AoP-keNcjGLtxbb9t7sggur1e+XmbMN5apVJfEdfhqU2-JGQ@mail.gmail.com","subject":"Re: Crash when pushing large binary file","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2012-11-16T10:11:25Z","receivedAt":"2012-11-16T10:11:25Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Fri, Nov 16, 2012 at 1:54 PM, Thomas Gay <tgay@tokyois.com> wrote:\n>> If you set receive.unpacklimit to 1 on the receiving end, does it still crash?\n>\n> Yes. The crash log looks the same too.\n\nIf it still says \"unpack-objects died of signal 11\" then it was not\ndone the right way. The receiving end can use either unpack-objects or\nindex-pack for storing the objects. I know unpack-objects is not ready\nfor large blobs (though I cannot explain your crash log, that's why I\nstill need you to test it this way). I was hoping to force it use\nindex-pack and see it still crashes. If it does, we have other\nproblems than unpack-objects not being ready for large blobs. If it\ndoes not, I'd say it's a known issue with a known solution (I was\nplanning on merging unpack-objects functionality back to index-pack).\n\nWe can try again this way. index-pack will be used if the number of\ntransfer objects exceeds 100 (by default). You are pusing 16 objects,\nwhich is why unpack-objects is used. We can try to push garbage to the\nother end to meet the 100 limit, then reset the branch at the other\nend later. You can run \"git gc\" early on the other end to clean up\ngarbage, or it'll be done automatically at some point in future. Make\nsure there is no changes in index and worktree, or adjust you may want\nto change the last four commands slightly.\n\nmkdir tmp\nfor i in `seq 200`;do echo $i > tmp/$i; git add $i; done\ngit commit -m 'useless stuff'\ngit push <where?>   # should not crash again\ngit reset --hard HEAD^\ngit push <same-where?-above>\n-- \nDuy\n"},{"id":"203551","messageId":"CACsJy8Ai=JK8c5GbjXBY2A4mtxSUUTzrTJt=puxXvDD1fhFmFg@mail.gmail.com","threadId":"32125","inReplyTo":"CA+AoP-n=P3-yTshfQRwdyUcb7eFM12-+bAtS_FUAxXtwuFxjzg@mail.gmail.com","subject":"Re: Crash when pushing large binary file","fromName":"Nguyen Thai Ngoc Duy","fromEmail":"pclouds@gmail.com","sentAt":"2012-11-20T11:37:35Z","receivedAt":"2012-11-20T11:37:35Z","isPatch":false,"sender":{"key":"pclouds@gmail.com","avatar":"https://avatars.githubusercontent.com/u/720?v=4"},"body":"On Tue, Nov 20, 2012 at 8:50 AM, Thomas Gay <tgay@tokyois.com> wrote:\n> Sorry for the late reply; I've been out of the office for the past few days.\n>\n> On Fri, Nov 16, 2012 at 7:11 PM, Nguyen Thai Ngoc Duy <pclouds@gmail.com> wrote:\n>> If it still says \"unpack-objects died of signal 11\" then it was not\n>> done the right way.\n>\n> I upgraded Git on both ends and tried setting it again. index-pack was\n> used this time, but it still failed:\n>\n> Counting objects: 38, done.\n> Delta compression using up to 4 threads.\n> Compressing objects: 100% (26/26), done.\n> error: index-pack died of signal 11 GiB | 62.44 MiB/s\n> error: pack-objects died of signal 13\n> error: failed to push some refs to '...'\n>\n> Would you still like me to try your other method?\n\nInteresting. No, if index-pack fails too the culprit is something\nelse. Does the stack trace look the same (i.e. crashed in\nwrite_sha1_file_prepare)? I still don't know how it crashes there.\nIt'd be great if you could run it under valgrind (not sure if valgrind\nruns in OS X). Try building with NO_OPENSSL too to avoid external sha1\nissues.\n-- \nDuy\n"}]}