--- Shawn Pearce <spearce@xxxxxxxxxxx> wrote: > Luben Tuikov <ltuikov@xxxxxxxxx> wrote: > > --- Linus Torvalds <torvalds@xxxxxxxx> wrote: > > > Can you run that by hand under gdb and get a backtrace? > > > > Linus, > > > > Auto-merging init/Kconfig > > Auto-merging init/version.c > > > > Program received signal SIGSEGV, Segmentation fault. > > xdl_merge (orig=Variable "orig" is not available. > > ) at xdiff/xmerge.c:200 > > 200 t2.ptr = (char *)xe2->xdf2.recs[m->i2]->ptr; > > (gdb) bt > > #0 xdl_merge (orig=Variable "orig" is not available. > > ) at xdiff/xmerge.c:200 > > #1 0x000000000040322c in merge_file (o=0x7fffd4f762f0, a=0x7fffd4f76270, b=0x7fffd4f762b0, > > branch1=0x7fffd4f77976 "HEAD", > > branch2=0x7fffd4f7797b "cc016448b0bf0764928275d034e367753bde8162") at > merge-recursive.c:667 > > #2 0x0000000000404e87 in merge_trees (head=0x12e4a00, merge=0x555328, common=0x555350, > > branch1=Variable "branch1" is not available. > > ) at merge-recursive.c:1074 > > #3 0x0000000000405376 in merge (h1=0x5452f0, h2=0x545370, branch1=0x7fffd4f77976 "HEAD", > > branch2=0x7fffd4f7797b "cc016448b0bf0764928275d034e367753bde8162", call_depth=0, > > ancestor=0x5453f0, result=0x7fffd4f764e0) at merge-recursive.c:1245 > > #4 0x00000000004056a5 in main (argc=Variable "argc" is not available. > > ) at merge-recursive.c:1312 > > > > I also ran git-bisect twice over two well known but overlapping > > good-bad regions and I get the same commit as being the culprit. > > It seems to be commit 1510fea781cb0517eeba8c378964f7bc4f9577ab. > > Oww, the finger points at me! :-) > > Hmm. 1510fe does not look right to me. That return 0 should only > be activating when FAST_WORKING_DIRECTORY == 0, so you really want > this patch below. Normally NO_FAST_WORKING_DIRECTORY is _not_ > defined, which means FAST_WORKING_DIRECTORY == 1, and in that case > the if should always be false and the compiler should be stripping > the code out entirely. > > What's odd is that the xdl_merge routine is crashing out because > this code activated. It really should not have, so more work is > still required... Thanks. It is good to see that the solution patches are identical. That fixes the problem. Luben > > diff --git a/diff.c b/diff.c > index 77ba641..1c1de11 100644 > --- a/diff.c > +++ b/diff.c > @@ -1194,7 +1194,7 @@ static int reuse_worktree_file(const char *name, const unsigned char > *sha1, int > * objects however would tend to be slower as they need > * to be individually opened and inflated. > */ > - if (FAST_WORKING_DIRECTORY && !want_file && has_sha1_pack(sha1, NULL)) > + if (!FAST_WORKING_DIRECTORY && !want_file && has_sha1_pack(sha1, NULL)) > return 0; > > len = strlen(name); > - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html