git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: "H.Merijn Brand" <h.m.brand@xs4all.nl>
Cc: git@vger.kernel.org
Subject: Re: Coredump on ls-remote + --sort
Date: Sat, 22 Sep 2018 14:33:11 +0200	[thread overview]
Message-ID: <87in2xk8zc.fsf@evledraar.gmail.com> (raw)
In-Reply-To: <20180922124215.0c8172d1@pc09.procura.nl>


On Sat, Sep 22 2018, H.Merijn Brand wrote:

> A small background why I wanted this: I need to build a new version of
> some software hosted in git, add a lot of shared/static stuff and
> automatically test it. I want to get the most recent *tag* and create a
> folder with the tagname in it, go into that folder and clone the repo,
> check out the tag, add the rest of the stuff, build and test
>
> As the default outpout of «git ls-remote --tags» or «git ls-remote» is
> topologically sorted by tagname, the most recent tag is likely to be in
> the middle.
>
> Linux 4.12.14-lp150.12.16-default [openSUSE Leap 15.0]
>
> $ git --version
> git version 2.19.0
>
> $ git ls-remote --tags github.com:Tux/App-ccdiff
> 5e2513ab6dd4a24c8f3a3ace0a3faba6a291d818        refs/tags/0.04
> 2f7ea0f1e751dc20c1ddb15f6d61c6fa62d5d6f1        refs/tags/0.05
> a3802907be5b10383c7438f1d1c660fe13a05d3f        refs/tags/0.06
> 3e4bfa7cde75fba221650b9d3aa5555b706803df        refs/tags/0.07
> 05829d1ac5b49bbdd2167bc363b94f8a12e752b3        refs/tags/0.08
> 9c6e5861ea9c6e50c501663d43c5a9f6d31b54bc        refs/tags/0.09
> e815b059f6326da936c3a92272ba67e273b1dc3e        refs/tags/0.10
> e6b40e331c945449bb8e71023de4920ca5574adc        refs/tags/0.20
> be55e6336b1db5ffad23a6a0a663763e2f5da779        refs/tags/0.21
> e283d563f02bb8d2131e8b95852072ac204b28b4        refs/tags/0.22
> 0d3d1830f542121bfef1d984f21343c6d9c774f8        refs/tags/0.23
> d7bf195a92095a4f0b810584810450e4001b1a2c        refs/tags/0.24
> 5c517cf3f79cb18173714e63bc5b80a3e3f888f1        refs/tags/0.25
>
> Whether or not supported, it should not dump core
>
> $ git ls-remote --tags --sort=authordate github.com:Tux/App-ccdiff
> Segmentation fault (core dumped)
>
> (gdb) where
> #0  0x00007ffff74784a6 in __strlen_sse2 () from /lib64/libc.so.6
> #1  0x000000000057a956 in for_each_replace_ref ()
> #2  0x0000000000596cec in do_lookup_replace_object ()
> #3  0x00000000005c14eb in oid_object_info_extended ()
> #4  0x000000000058b984 in get_object ()
> #5  0x000000000058ddde in populate_value ()
> #6  0x000000000058e36b in compare_refs ()
> #7  0x000000000061447a in msort_with_tmp.part ()
> #8  0x0000000000614505 in msort_with_tmp.part ()
> #9  0x0000000000614518 in msort_with_tmp.part ()
> #10 0x0000000000614518 in msort_with_tmp.part ()
> #11 0x000000000061459e in git_qsort_s ()
> #12 0x000000000058ed40 in ref_array_sort ()
> #13 0x000000000044ef66 in cmd_ls_remote ()
> #14 0x000000000040784f in handle_builtin ()
> #15 0x0000000000407bb0 in cmd_main ()
> #16 0x0000000000406b04 in main ()
>
> Linux 3.10.0-862.6.3.el7.x86_64 [CentOS Linux 7.5.1804 (Core)]
>
> $ git --version
> git version 2.18.0
>
> $ git ls-remote --tags https://github.com/Tux/App-ccdiff
> 5e2513ab6dd4a24c8f3a3ace0a3faba6a291d818        refs/tags/0.04
> 2f7ea0f1e751dc20c1ddb15f6d61c6fa62d5d6f1        refs/tags/0.05
> a3802907be5b10383c7438f1d1c660fe13a05d3f        refs/tags/0.06
> 3e4bfa7cde75fba221650b9d3aa5555b706803df        refs/tags/0.07
> 05829d1ac5b49bbdd2167bc363b94f8a12e752b3        refs/tags/0.08
> 9c6e5861ea9c6e50c501663d43c5a9f6d31b54bc        refs/tags/0.09
> e815b059f6326da936c3a92272ba67e273b1dc3e        refs/tags/0.10
> e6b40e331c945449bb8e71023de4920ca5574adc        refs/tags/0.20
> be55e6336b1db5ffad23a6a0a663763e2f5da779        refs/tags/0.21
> e283d563f02bb8d2131e8b95852072ac204b28b4        refs/tags/0.22
> 0d3d1830f542121bfef1d984f21343c6d9c774f8        refs/tags/0.23
> d7bf195a92095a4f0b810584810450e4001b1a2c        refs/tags/0.24
> 5c517cf3f79cb18173714e63bc5b80a3e3f888f1        refs/tags/0.25
>
> $ git ls-remote --tags --sort=authordate https://github.com/Tux/App-ccdiff
> Segmentation fault
>
> (gdb) where
> #0  0x00007ffff751a67f in __strlen_sse42 () from /lib64/libc.so.6
> #1  0x0000000000561c06 in for_each_replace_ref ()
> #2  0x000000000057c3fa in do_lookup_replace_object ()
> #3  0x00000000005a6aa8 in read_object_file_extended ()
> #4  0x00000000005731e5 in get_object ()
> #5  0x00000000005749df in populate_value ()
> #6  0x0000000000574e9d in compare_refs ()
> #7  0x00000000005efe57 in msort_with_tmp.part.0 ()
> #8  0x00000000005efe31 in msort_with_tmp.part.0 ()
> #9  0x00000000005efe0e in msort_with_tmp.part.0 ()
> #10 0x00000000005efe0e in msort_with_tmp.part.0 ()
> #11 0x00000000005eff5c in git_qsort_s ()
> #12 0x00000000005757e0 in ref_array_sort ()
> #13 0x000000000044c6b6 in cmd_ls_remote ()
> #14 0x000000000040730e in handle_builtin ()
> #15 0x000000000040760e in cmd_main ()
> #16 0x0000000000406554 in main ()

I can't reproduce this, I just get for both ssh and https:

    $ ~/g/git/git --exec-path=$PWD ls-remote --tags --sort=authordate https://github.com/Tux/App-ccdiff
    fatal: missing object 2f7ea0f1e751dc20c1ddb15f6d61c6fa62d5d6f1 for refs/tags/0.05
    $ ~/g/git/git --exec-path=$PWD version
    git version 2.18.0

Same thing on latest 'master' (v2.19.0-221-g150f307afc).

But maybe that's just a symptom of the same bug, when I clone the repo I
get a working 0.05 tag, and it passes fsck, and I do get the
2f7ea0f1e751dc20c1ddb15f6d61c6fa62d5d6f1 object (which is the 0.05 tag
object).

  reply	other threads:[~2018-09-22 12:33 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-22 10:42 Coredump on ls-remote + --sort H.Merijn Brand
2018-09-22 12:33 ` Ævar Arnfjörð Bjarmason [this message]
2018-09-22 14:11 ` [PATCH] ref-filter: don't look for objects when outside of a repository SZEDER Gábor
2018-09-24 16:15   ` Junio C Hamano
2018-09-24 18:17   ` Jeff King
2018-09-24 21:20     ` SZEDER Gábor
2018-09-24 21:30       ` Jeff King
2018-09-25 20:57       ` Junio C Hamano
2018-11-14 12:27         ` SZEDER Gábor
2018-11-15  9:38           ` Jeff King
2018-11-15  9:43             ` Jeff King
2018-11-16  5:09               ` Junio C Hamano
2018-11-16  8:56                 ` Jeff King
2018-11-16 10:07                   ` Junio C Hamano
2018-11-16 13:16                 ` SZEDER Gábor

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

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

  git send-email \
    --in-reply-to=87in2xk8zc.fsf@evledraar.gmail.com \
    --to=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=h.m.brand@xs4all.nl \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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 NNTP newsgroup(s).