Subject: Re: [BUG] Segfault in "git submodule"

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Sat, 29 Sep 2018 17:29:01 +0200

On Sat, Sep 29 2018, Raymond Jennings wrote:

> [New LWP 19644]
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib64/libthread_db.so.1".
> Core was generated by `git submodule--helper status'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0  refs_read_raw_ref (type=<optimized out>, referent=<optimized out>,
> oid=<optimized out>, refname=<optimized out>, ref_store=<optimized
> out>) at refs.c:1451
> 1451 return ref_store->be->read_raw_ref(ref_store, refname, oid,
> referent, type);
> #0  refs_read_raw_ref (type=<optimized out>, referent=<optimized out>,
> oid=<optimized out>, refname=<optimized out>, ref_store=<optimized
> out>) at refs.c:1451
> #1  refs_resolve_ref_unsafe (refs=0x0,
> refname=refname@entry=0x55e863062253 "HEAD",
> resolve_flags=resolve_flags@entry=1, oid=oid@entry=0x7ffdc834b1c0,
> flags=flags@entry=0x7ffdc834b1bc) at refs.c:1493
> #2  0x000055e862fcad5c in refs_read_ref_full (flags=0x7ffdc834b1bc,
> oid=0x7ffdc834b1c0, resolve_flags=1, refname=0x55e863062253 "HEAD",
> refs=<optimized out>) at refs.c:224
> #3  refs_head_ref (refs=<optimized out>, fn=fn@entry=0x55e862f25fb0
> <handle_submodule_head_ref>, cb_data=cb_data@entry=0x7ffdc834b300) at
> refs.c:1314
> #4  0x000055e862f292a2 in status_submodule (flags=0, prefix=<optimized
> out>, ce_flags=0, ce_oid=0x55e86468d4d4, path=0x55e86468d4e8
> "lpc-doc") at builtin/submodule--helper.c:624
> #5  status_submodule_cb (cb_data=0x7ffdc834b240,
> list_item=0x55e86468d490) at builtin/submodule--helper.c:665
> #6  for_each_listed_submodule (cb_data=<optimized out>, fn=<optimized
> out>, list=<optimized out>) at builtin/submodule--helper.c:404
> #7  module_status (argc=<optimized out>, argv=<optimized out>,
> prefix=<optimized out>) at builtin/submodule--helper.c:698
> #8  0x000055e862eaec95 in run_builtin (argv=<optimized out>,
> argc=<optimized out>, p=<optimized out>) at git.c:346
> #9  handle_builtin (argc=<optimized out>, argv=<optimized out>) at git.c:554
> #10 0x000055e862eaf985 in run_argv (argv=0x7ffdc834be20,
> argcp=0x7ffdc834be2c) at git.c:606
> #11 cmd_main (argc=<optimized out>, argv=<optimized out>) at git.c:683
> #12 0x000055e862eae96a in main (argc=3, argv=0x7ffdc834c078) at common-main.c:43

Can you consistently reproduce this? Maybe Stefan can make some sense of
this, but it would be really useful if you could compile git from the
master branch with CFLAGS="-O0 -g" and run gdb with that and paste that
backtrace, and even better if you're in a position to share a copy of
the repository where this happens.