Subject: Re: git name-rev looks at refs/notes, refs/svn/map: stack overflow

From: SZEDER Gábor <[email-masked]>
Date: Mon, 11 Nov 2019 15:09:56 +0100

On Sun, Nov 10, 2019 at 11:21:49PM -0500, Jeff King wrote:
> On Sat, Nov 09, 2019 at 12:31:31PM +0100, Sebastiaan Dammann wrote:

> All of that's obviously a workaround, though. The real issue is the
> stack exhaustion.
> 
> > I hope to hear your view on this. Is this an (confirmed) issue with
> > git? Are there beside the workaround I mentioned, any other
> > workarounds?
> 
> Yes, this is well known. It's covered in the test suite (unfortunately
> still failing, of course) since 31625b34c0 (t6120: test describe and
> name-rev with deep repos, 2017-09-07).
> 
> There was a proposed fix recently in:
> 
>   https://public-inbox.org/git/[email-masked]/
> 
> but it doesn't seem to have been picked up. I'm not sure what the
> current status is.

It's getting along, being polished, clarified and fine-tuned ever so
slowly.

E.g. it turned out that the performance penalty from eliminating the
recursion is basically entirely caused by using a 'commit-list' to
store interesting parents (the overhead of a malloc() on each insert
and a free() on each pop).  Switching to a LIFO 'prio-queue' doesn't
cause any measurable slowdown.