Re: [PATCH] Avoid infinite loop in malformed packfiles
- From
Jeff King <peff@peff.net>
- Date
- Aug 24, 2020, 20:52 UTC
- Message-ID
- <20200824205231.GA787628@coredump.intra.peff.net>
- In-Reply-To
- <xmqq5z974w50.fsf@gitster.c.googlers.com>
On Mon, Aug 24, 2020 at 01:38:35PM -0700, Junio C Hamano wrote:
Show 10 quoted lines
> Jeff King <peff@peff.net> writes:
>
> > I think it may be worth making this a configurable value
> > (core.maxDeltaDepth or something). Nobody would generally need to tweak
> > it, but it would give an escape hatch for getting people out of a broken
> > situation ("git -c core.maxDeltaDepth=50000 repack" or similar).
>
> ... meaning "the pack I have has overlong delta chains to read, and
> I am running repack to cut these chains down to more manageable
> level"? Makes sense.Exactly.
> As it may be a bit tricky to figure out where we should read such a > configuration for those who are new to our codebase, here is an > illustration to give a starting point. Docs and tests are probably > needed, too.
It may be hard to test, as I suspect modern versions of Git are not happy to create such a deep chain. We could test with a lowered value of the config option, though.
It may also be worth introducing a true cycle using non-git commands. There's some coverage there in t/t5309-pack-delta-cycles.sh. I think we were mainly concerned there with how index-pack treats them, and it would be nice to see how other commands react. Though I guess that creates another testing difficulty: those other commands would need a pack index, and we'd refuse to create one. :) So I think it would require adding code to manually create a bogus idx file (or I guess shipping one as a fixture).
-Peff