git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Git Gui: Branch->create currently fails...

From
Philip Oakley <philipoakley@iee.email>
Date
Oct 14, 2019, 12:45 UTC
Message-ID
<fccde9f3-7c5c-f8fb-1af2-bd56f48f7877@iee.email>
In-Reply-To
<20191013185007.hogizh23jomaswzx@yadavpratyush.com>

Hi Pratyush, On 13/10/2019 19:50, Pratyush Yadav wrote:

Show 58 quoted lines
>> I've tried both parts and seen that this looks like some form of buffer
>> overrun or size limit
> Looks like it, but I'm not sure if that is on our end.
>   
>> with the mods I ran:
>> $ git gui > branch_create.txt
>>
>> which produced the 'same' error missing ", but with a slightly different
>> fragment.
>>
>> The branch_create.txt file is size 1.43 MB (1,502,103 bytes) (from the
>> windows explorer file properties dialog..)
>> opening in Notepad++ it's 4900 lines long with the final line trucated at
>> col 188 (shorter than other lines). There is an empty line 4901 (CRLF)
> Yeah, that's a lot of refs! On my git.git clone, I get 1299 lines, and I
> have git.git, my fork of git.git, and gitster in my remotes.
>   
>> the last two lines are:
>> list "refs/heads/branch-patterns" [list "commit"
>> "b2453cea29b58f2ec57f9627b2456b41568ba5da" [concat "" "Philip Oakley"]
>> [reformat_date [concat "" "Tue May 28 20:22:09 2019 +0100"]] "squash! doc
>> branch: provide examples for listing remote tracking branches"] [list "" ""
>> "" [reformat_date ""] ""]
>> list "refs/heads/MSVC-README" [list "commit"
>> "056fb95c8e983ec07e9f5f8baa0b119bf3d13fed" [concat "" "Philip Oakley"]
>> [reformat_date [concat "" "Sun May 19 22:33:37 2019 +0100"]] "compat/vc
>>
>> the file starts with 1018 lines of refs/tags before listing the refs/remotes
>> and finally the refs/heads.
>>
>> The repo is my local Git repo with multiple remotes (git.git, G-f-W, ggg,
>> junio, gitster, dscho, t-b, tboeg, me), so plenty of refs there!
>>
>> So it does look to be specific to repos with a large number of refs/tags,
>> refs/remotes, and refs/heads.
>>
>> something for the back-burner?
> I'm not sure why or where a buffer overflow would occur. We don't store
> the whole output directly in a variable. Instead, we store each line
> from the pipe coming in from `git for-each-ref` in $line, so that's a
> few hundred characters at most. The rest of the data stays in the pipe,
> which the OS should handle, and I don't think a few MBs should cause
> trouble.
>
> If I had to guess, I'd suspect either an internal Tcl limit, or
> something with Tcl pipes.
>
> Just to be sure it is a git-gui/Tcl issue and not an upstream git.git
> issue, can you run:
>
>    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 --tcl --format="$fmt" --sort=-taggerdate refs/heads refs/remotes refs/tags
>
> and see if the output contains that truncated line? If it does, then
> that means the bug is in git-for-each-ref. Note that this is bash
> syntax, and I did a test run on Linux. Do adjust it for Windows and your
> shell if needed.
ran that bit of code (as distinct commands), and got (last two lines):

[list "" "" "" [reformat_date ""] ""] list "refs/heads/branch-patterns-v2" [list "commit" "d5a799d8833b0ae195915eefd5365f3fc4c7c0a4" [concat "" "Philip Oakley"] [reformat_date [concat "" "Sat Jun 8 22:50:06 2019 +0100"]] "t3203-branch-output: test -a & -r pattern options"] [list "" "" "" [reformat_date ""] ""] list "refs/heads/branch-patterns" [list "commit" "b2453cea29b58f2ec57f9627b2456b41568ba5da" [concat "" "Philip Oakley"] [reformat_date [concat "" "Tue May 28 20:22:09 2019 +0100"]] "squash! doc branch: provide examples for listing remote tracking branches"] [list "" "" "" [reformat_date ""] ""] 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.
-- 
Philip
Previous: Pratyush YadavNext: Pratyush Yadav
Message 6 of 10 in “Git Gui: Branch->create currently fails...”
  1. Philip OakleyOct 7, 2019
  2. Philip OakleyOct 7, 2019
  3. Pratyush YadavOct 8, 2019
  4. Philip OakleyOct 12, 2019
  5. Pratyush YadavOct 13, 2019
  6. Philip OakleyOct 14, 2019
  7. Pratyush YadavOct 14, 2019
  8. Philip OakleyOct 14, 2019
  9. Pratyush YadavOct 16, 2019
  10. Philip OakleyOct 18, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.