git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
From: Tamas Papp <tamas.papp@rtfm.co.hu>
To: Jeff King <peff@peff.net>
Cc: git@vger.kernel.org
Subject: Re: git name-rev segfault
Date: Mon, 29 Jul 2019 22:00:40 +0200	[thread overview]
Message-ID: <560b857a-808e-9ac6-ec3e-6778bb4c03e7@rtfm.co.hu> (raw)
In-Reply-To: <20190729195001.GE14943@sigill.intra.peff.net>

Thanks for letting me know and for the corrections too.


Cheers,

tamas


On 7/29/19 9:50 PM, Jeff King wrote:
> On Mon, Jul 29, 2019 at 04:19:47PM +0200, Tamas Papp wrote:
>
>> Generate 100k file into a repository:
>>
>> #!/bin/bash
>>
>> rm -rf .git test.file
>> git init
>> git config user.email a@b
>> git config user.name c
>>
>> time for i in {1..100000}
>> do
>>    [ $((i % 2)) -eq 1 ] && echo $i>test.file || echo 0 >test.file
>>    git add test.file
>>
>>    git commit -m "$i committed"
>>
>> done
> I lost patience kicking off two hundred thousand processes. Try this:
>
>    for i in {1..100000}
>    do
>      echo "commit HEAD"
>      echo "committer c <a@b> $i +0000"
>      echo "data <<EOF"
>      echo "$i committed"
>      echo "EOF"
>      echo
>    done | git fast-import
>
> which runs much faster. This doesn't change any files in each commit,
> but I don't think it's necessary for what you're showing (name-rev
> wouldn't ever look at the trees).
>
>> Run git on it:
>>
>> $ git name-rev a20f6989b75fa63ec6259a988e38714e1f5328a0
> Anybody who runs your script will get a different sha1 because of the
> change in timestamps. I guess this is HEAD, though. I also needed to
> have an actual tag to find. So:
>
>    git tag old-tag HEAD~99999
>    git name-rev HEAD
>
> segfaults for me.
>
>> Could you coment on it?
> This is a known issue. The algorithm used by name-rev is recursive, and
> you can run out of stack space in some deep cases. There's more
> discussion this thread:
>
>    https://public-inbox.org/git/6a4cbbee-ffc6-739b-d649-079ba01439ca@grubix.eu/
>
> including some patches that document the problem with an expected
> failure in our test suite. Nobody has actually rewritten the C code yet,
> though.
>
> -Peff

      reply	other threads:[~2019-07-29 20:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-29 14:19 Tamas Papp
2019-07-29 19:50 ` Jeff King
2019-07-29 20:00   ` Tamas Papp [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=560b857a-808e-9ac6-ec3e-6778bb4c03e7@rtfm.co.hu \
    --to=tamas.papp@rtfm.co.hu \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --subject='Re: git name-rev segfault' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).