list mirror (unofficial, one of many)
 help / color / Atom feed
From: Philip Oakley <>
To: Pratyush Yadav <>
Cc: Git List <>
Subject: Re: Git Gui: Branch->create currently fails...
Date: Fri, 18 Oct 2019 22:05:03 +0100
Message-ID: <> (raw)
In-Reply-To: <>

Hi Pratyush

On 16/10/2019 19:52, Pratyush Yadav wrote:
> On 14/10/19 11:11PM, Philip Oakley wrote:
>> On 14/10/2019 18:57, Pratyush Yadav wrote:
>>>> list "refs/heads/MSVC-README" [list "commit"
>>>> "056fb95c8e983ec07e9f5f8baa0b119bf3d13fed" [concat "" "Philip Oakley"]
>>>> [reformat_date [concat "" "Sun May 19 22:33:37 2019 +0100"]]
>>>> "compat/vcSegmentation fault
>>>> Not exactly the same, but almost. Ends the same place, with as similar short
>>>> line.
>>>> This is run inside the bash that is started directly by the git-for-windows
>>>> sdk start icon. (Target: C:\git-sdk-64\git-bash.exe   Stat in:
>>>> C:/git-sdk-64/)
>>>> so looks to be MSYS2/bash related.
>>> Ah, so it is an upstream issue. I guess we can just report it and wait
>>> for them to fix it.
>> I'd missed the final 'Segmentation fault' on the last line in the bash
>> output that wasn't there for the captured file.
>> That was repeatable in re-testing.
>> But failed if I changed the $fmt string to a plain text 500 char string
>> ("1234567890123...").
>> I've still to trim down the complicated $fmt string to see if I can see
>> where that seg fault starts (i.e. some form of MVCE), so that it can be
>> investigated.
>> Possibly should check if the --tcl flag actually invokes any tcl! Otherwise
>> it's fully in the Git/G-f-W zone.
> A quick look tells me '--tcl' does not invoke any Tcl. It is just used
> to output properly formatted strings for Tcl. The option sets the value
> of 'format.quote_style' in for-each-ref (builtin/for-each-ref.c:33).
> That value is later indirectly ends up being used in the function
> ref_filter.c::quote_formatting.
> The Tcl code we execute comes from the long $fmt string, which is built
> in git-gui/choose_rev.tcl:133-147. `for-each-ref` just fills in the
> placeholder values, properly formatting them for use in Tcl.
> As an experiment, you can try removing '--tcl' from the `for-each-ref`
> command that segfaults, just to be sure. It would probably output
> invalid Tcl, but since we don't do anything with that output, it doesn't
> really matter, and would let us know if '--tcl' is really the culprit.
Command reminder:
fmt='list %(refname) [list %(objecttype) %(objectname) [concat 
%(taggername) %(authorname)] [reformat_date [concat %(taggerdate) 
%(authordate)]] %(subject)] [list %(*objecttype) %(*objectname) 
%(*authorname) [reformat_date %(*authordate)] %(*subject)]'

git for-each-ref --format="$fmt" --sort=-taggerdate refs/heads 
refs/remotes refs/tags
Removing the '--tcl' still seg faults.

Removing the  --sort=-taggerdate  *stops* the segfault.

Removing instead the final 'refs/tags' (i.e. a shorter list) also 
*stops* the seg fault (still with the --sort=..)

If instead I drop the initial refs/heads (a limited number of branch 
heads!) it segfaults (still with --sort) so looks like it's a size issue.

Alternative approach - trim the fmt string, dropping all the '*' types.
$ fmt='list %(refname) [list %(objecttype) %(objectname) [concat 
%(taggername) %(authorname)] [reformat_date [concat %(taggerdate) 
%(authordate)]] %(subject)]'

The full for-each-ref command now works, BUT the last line of output is 
short, rather than being a seg fault. (with or without the --sortdate)

so all in all rather weird. Sometimes it seg faults and sometimes it 
simply terminates early.
>> ...
>> Just rebuilt (I hope) the Windows Subsystem for Linux (WSL) with git v2.23.0
>> installed and got:
>> list "refs/heads/MSVC-README" [list "commit"
>> "056fb95c8e983ec07e9f5f8baa0b119bf3d13fed" [concat "" "Philip Oakley"]
>> [reformat_date [concat "" "Sun May 19 22:33:37 2019 +0100"]]
>> "compat/vcbuild/README: clean/update 'vcpkg' env for Visual Studio updates"]
>> [list "" "" "" [reformat_date ""] ""]
>> munmap_chunk(): invalid pointer
> A quick Google search tells me munmap_chunk() is probably related to an
> invalid pointer being freed. Either a double free or a free on a pointer
> not allocated by malloc or something similar.
>> Aborted (core dumped)
>> root@Philip-Win10:/mnt/c/git-sdk-64/usr/src/git#
>> That said, haven't got the gitk and git gui to work yet on the WSL because
>> it doesn't like the tcl/tk.
>> It's a bit of a hole digging exercise.
The hole that keeps digging...

      reply index

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-07 22:02 Philip Oakley
2019-10-07 22:05 ` Philip Oakley
2019-10-08  0:00 ` Pratyush Yadav
2019-10-12 20:34   ` Philip Oakley
2019-10-13 18:50     ` Pratyush Yadav
2019-10-14 12:45       ` Philip Oakley
2019-10-14 17:57         ` Pratyush Yadav
2019-10-14 22:11           ` Philip Oakley
2019-10-16 18:52             ` Pratyush Yadav
2019-10-18 21:05               ` Philip Oakley [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:

  List information:

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

  git send-email \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link list mirror (unofficial, one of many)

Archives are clonable:
	git clone --mirror
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

Example config snippet for mirrors

Newsgroups are available over NNTP:

 note: .onion URLs require Tor:

AGPL code for this site: git clone