git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git fast-import crashing on big imports

From
USUlrich Spörlein <uqs@freebsd.org>
Date
Jan 12, 2017, 08:21 UTC
Message-ID
<20170112082138.GJ4426@acme.spoerlein.net>
Hey,

the FreeBSD svn2git conversion is crashing somewhat non-deterministically during its long conversion process. From memory, this was not as bad is it is with more recent versions of git (but I can't be sure, really).

I have a dump file that you can grab at http://scan.spoerlein.net/pub/freebsd-base.dump.xz (19G, 55G uncompressed) that shows this problem after a couple of minutes of runtime. The caveat is that for another member of the team on a different machine the crashes are on different revisions.

Googling around I found two previous threads that were discussing problems just like this (memory corruption, bad caching, etc)

https://www.spinics.net/lists/git/msg93598.html from 2009 and http://git.661346.n2.nabble.com/long-fast-import-errors-out-quot-failed-to-apply-delta-quot-td6557884.html from 2011

% git fast-import --stats < ../freebsd-base.dump ... progress SVN r49318 branch master = :49869 progress SVN r49319 branch stable/3 = :49870 progress SVN r49320 branch master = :49871 error: failed to apply delta error: bad offset for revindex error: bad offset for revindex error: bad offset for revindex error: bad offset for revindex error: bad offset for revindex fatal: Can't load tree b35ae4e9c2a41677e84a3f14bed09f584c3ff25e fast-import: dumping crash report to fast_import_crash_29613

fast-import crash report:
    fast-import process: 29613
    parent process     : 29612
    at 2017-01-11 19:33:37 +0000
fatal: Can't load tree b35ae4e9c2a41677e84a3f14bed09f584c3ff25e

git fsck shows a somewhat incomplete pack file (I guess that's expected if the process dies mid-stream?)

% git fsck Checking object directories: 100% (256/256), done. error: failed to apply delta6/614500) error: cannot unpack d1d7ee1f81c6767c5e0f75d14d400d7512a85a0f from ./objects/pack/pack-e28fcea43fc221d2ebe92857b484da58bb888237.pack at offset 122654805 error: failed to apply delta error: failed to read delta base object d1d7ee1f81c6767c5e0f75d14d400d7512a85a0f at offset 122654805 from ./objects/pack/pack-e28fcea43fc221d2ebe92857b484da58bb888237.pack error: cannot unpack 8523bde63ef34bef725347994fdaec996d756510 from ./objects/pack/pack-e28fcea43fc221d2ebe92857b484da58bb888237.pack at offset 122671596 error: failed to apply delta0/614500) error: failed to read delta base object d1d7ee1f81c6767c5e0f75d14d400d7512a85a0f at offset 122654805 from ./objects/pack/pack-e28fcea43fc221d2ebe92857b484da58bb888237.pack ...

Any comments on whether the original problems from 2009 and 2011 were ever fixed and committed?

Some more facts:
- git version 2.11.0
- I don't recall these sorts of crashes with a git from 2-3 years ago
- adding more checkpoints does help, but not fix the problem, it merely shifts
  the crashes around to different revisions
- incremental runs of the conversion *will* complete most of the time, but
  depending on how often checkpoints are used, I've seen it croak on specific
  commits and not being able to progress further :(

Thanks for any pointers or things to try! Cheers Uli

Next: Ulrich Spoerlein
Message 1 of 9 in “git fast-import crashing on big imports”
  1. Ulrich SpörleinJan 12, 2017
  2. Ulrich SpoerleinJan 18, 2017
  3. Jeff KingJan 18, 2017
  4. Jeff KingJan 18, 2017
  5. Jeff KingJan 18, 2017
  6. Jeff KingJan 18, 2017
  7. Ulrich SpörleinJan 19, 2017
  8. clear_delta_base_cache(): don't modify hashmap while iteratingJeff King, Jan 19, 2017
  9. Junio C HamanoJan 19, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.