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

Re: git-merge segfault in 1.6.6 and master

From
Tim Olsen <tim@brooklynpenguin.com>
Date
Jan 21, 2010, 21:56 UTC
Message-ID
<4B58CD91.5000903@brooklynpenguin.com>
In-Reply-To
<20100121140057.GP12429@genesis.frugalware.org>
Miklos Vajna wrote:
> Two ideas to help debugging:
> 
> - Can you try if this happens in a new repo as well? (If not, is the
>   repo public?) If yes, can you write a script that shows your problem?
The problem still happens in any clone of the repository, but I have not
attempted to reproduce the problem in a fresh repository.  I've put our
repository up at git://les.limebits.net/site (warning: the repo is about
 364MB).  The following 3 commands will reproduce the problem:

git clone git://les.limebits.net/site cd site git merge origin/deployed

The problem starts with commit 9079b71b6f. I can merge its ancestors with no problem into the default branch (build-dav-sync-05). But commit 9079b71b6f and its descendents cause a segfault when merging into build-dav-sync-05.

> - Can you see if this happens with v1.6.0? If yes, can you bisect it?
With 1.6.0, the merge still fails but it doesn't outright segfault.

$ git merge origin/deployed Merge with strategy recursive failed. $

The output appears to be from line 1098 of builtin-merge.c. Bisecting finds that the outright segfaulting starts with commit 18668f53:

tolsen@neurofunk:~/git/git [git:NO BRANCH*]$ git bisect good
18668f5319b079cce29e19817bc352b1413e0908 is first bad commit
commit 18668f5319b079cce29e19817bc352b1413e0908
Author: Miklos Vajna <vmiklos@frugalware.org>
Date:   Thu Aug 28 15:43:00 2008 +0200
    builtin-merge: avoid run_command_v_opt() for recursive and subtree
    The try_merge_strategy() function always ran the strategy in a separate
    process, though this is not always necessary. The recursive and subtree
    strategy can be called without a fork(). This patch adds a check, and
    calls recursive in the same process without wasting resources.
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
    Signed-off-by: Junio C Hamano <gitster@pobox.com>

:100644 100644 9ad9791068c9330f28413ac67315246989c8d96d b857cf6246978846e0c19895fd6f66266cf6a6f4 M builtin-merge.c tolsen@neurofunk:~/git/git [git:NO BRANCH*]$

This leads me to believe the segfault may still be occurring in v1.6.0, but in a separate process.

Tim
> 
> Thanks.
Previous: Miklos Vajna
Message 10 of 10 in “git-merge segfault in 1.6.6 and master”
  1. Tim OlsenJan 20, 2010
  2. Junio C HamanoJan 20, 2010
  3. Tim OlsenJan 20, 2010
  4. Junio C HamanoJan 20, 2010
  5. Tim OlsenJan 21, 2010
  6. Junio C HamanoJan 21, 2010
  7. Junio C HamanoJan 22, 2010
  8. Junio C HamanoJan 22, 2010
  9. Miklos VajnaJan 21, 2010
  10. Tim OlsenJan 21, 2010

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.