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

[PATCH 0/2] infinite loop in "git ls-tree" for broken symlink

From
Petr Stodulka <pstodulk@redhat.com>
Date
Oct 14, 2016, 13:16 UTC
Message-ID
<1476451012-9925-1-git-send-email-pstodulk@redhat.com>

Hi, I have realized that this wasn't fixed after all when refs.c was "rewritten". Issue is caused by broken symlink under refs/heads, which causes infinite loop for "git ls-tree" command. It was replied earlier [0] and Michael previously fixed that in better way probably, then my proposed patch 2/2, but it contains more changes and I have not enough time to study changes in refs* code, so I propose now just my little patch, which was previously modified by Michael.

If you prefer different solution, I am ok with this. It is really just quick proposal. Patch 1/2 contains test for this issue. If you will prefer different solution with different exit code, test should be corrected. Basic idea is, that timeout should'n expire with exit code 124.

[0] http://marc.info/?l=git&m=142712669103790&w=2 [1] https://github.com/mhagger/git, branch "ref-broken-symlinks"

Michael Haggerty (1):
  resolve_ref_unsafe(): limit the number of "stat_ref" retries
Petr Stodulka (1):
  Add test for ls-tree with broken symlink under refs/heads
 refs/files-backend.c    | 6 ++++--
 refs/refs-internal.h    | 6 ++++++
 t/t3103-ls-tree-misc.sh | 9 +++++++++
 3 files changed, 19 insertions(+), 2 deletions(-)
-- 
2.5.5
Next: Petr Stodulka
Message 1 of 6 in “infinite loop in "git ls-tree" for broken symlink”
  1. 0/2 infinite loop in "git ls-tree" for broken symlinkPetr Stodulka, Oct 14, 2016
  2. 1/2 Add test for ls-tree with broken symlink under refs/headsPetr Stodulka, Oct 14, 2016
  3. 2/2 resolve_ref_unsafe(): limit the number of "stat_ref" retriesPetr Stodulka, Oct 14, 2016
  4. Petr StodulkaOct 14, 2016
  5. Jeff KingOct 14, 2016
  6. Petr StodulkaOct 14, 2016

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.