Thread (4 messages) 4 messages, 3 authors, 2016-06-15

Re: git-merge segfault in 1.6.6 and master

From: Tim Olsen <hidden>
Date: 2016-06-15 22:48:04

Possibly related (same subject, not in this thread)

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 [off-list ref]
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 [off-list ref]
    Signed-off-by: Miklos Vajna [off-list ref]
    Signed-off-by: Junio C Hamano [off-list ref]

: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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help