threads / discuss / 17464

Bus Error- git merge

Subject: Bus Error- git merge

## tl;dr

4 messages between Jan 30, 2009 and Feb 1, 2009.

replies: 3people: 2as markdown or json

Brian Moran· Jan 30, 2009, 18:15 UTC · lore

I am getting a bus error on a git merge, including the more recent versions. Following the instructions from a bug August, I got the latest sources, compiled them up, and executed the merge in the debugger to repro. Here¹s what I found:

gdb ../git-1.6.1.2/git-merge GNU gdb 6.3.50-20050815 (Apple version gdb-768) (Tue Oct 2 04:07:49 UTC 2007) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-apple-darwin"...Reading symbols for shared libraries ........ done

(gdb) set args -v v1-ftp-support (gdb) run Starting program: /Users/bmo/Documents/repo/git-1.6.1.2/git-merge -v v1-ftp-support Reading symbols for shared libraries +++++++. done

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000004
0x000863c3 in sha_eq (a=0x4 <Address 0x4 out of bounds>, b=0x7bf004 "<some
random chars>") at cache.h:575
575        return memcmp(sha1, sha2, 20);

(gdb) backtrace #0 0x000863c3 in sha_eq (a=0x4 <Address 0x4 out of bounds>, b=0x7bf004 "<some random chars>") at cache.h:575 #1 0x00086dc6 in merge_trees (o=0xbfffedd4, head=0x7bf020, merge=0x7bf000, common=0x0, result=0xbfffed28) at merge-recursive.c:1164 #2 0x00088960 in merge_recursive (o=0xbfffedd4, h1=0x4f4060, h2=0x4f4000, ca=0x53cc20, result=0xbfffee2c) at merge-recursive.c:1294 #3 0x0003871c in try_merge_strategy (strategy=0xd28ce "recursive", common=0x53a040, head_arg=0xc3508 "HEAD") at builtin-merge.c:586 #4 0x00039fef in cmd_merge (argc=1, argv=0xbffff860, prefix=0x0) at builtin-merge.c:1131 #5 0x000025db in handle_internal_command (argc=3, argv=0xbffff860) at git.c:243 #6 0x00002c48 in main (argc=3, argv=0xbffff860) at git.c:453 (gdb) Any suggestions on how to proceed? I am available to gather more information on this as I can reproduce at will. Thanks, Brian Moran

http://www.onehub.com
Johannes Schindelin· Jan 30, 2009, 18:57 UTC · re: Brian Moran · lore

Re: Bus Error- git merge

Hi,
On Fri, 30 Jan 2009, Brian Moran wrote:
> I am getting a bus error on a git merge, including the more recent versions.
> Following the instructions from a bug August, I got the latest sources,
> compiled them up, and executed the merge in the debugger to repro. Here¹s
> what I found:
Is it possible that your branch has submodules?
Show 29 quoted lines
> gdb ../git-1.6.1.2/git-merge
> GNU gdb 6.3.50-20050815 (Apple version gdb-768) (Tue Oct  2 04:07:49 UTC
> 2007)
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "i386-apple-darwin"...Reading symbols for shared
> libraries ........ done
> 
> (gdb) set args -v v1-ftp-support
> (gdb) run
> Starting program: /Users/bmo/Documents/repo/git-1.6.1.2/git-merge -v
> v1-ftp-support
> Reading symbols for shared libraries +++++++. done
> 
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_PROTECTION_FAILURE at address: 0x00000004
> 0x000863c3 in sha_eq (a=0x4 <Address 0x4 out of bounds>, b=0x7bf004 "<some
> random chars>") at cache.h:575
> 575        return memcmp(sha1, sha2, 20);
> 
> (gdb) backtrace
> #0  0x000863c3 in sha_eq (a=0x4 <Address 0x4 out of bounds>, b=0x7bf004
> "<some random chars>") at cache.h:575
> #1  0x00086dc6 in merge_trees (o=0xbfffedd4, head=0x7bf020, merge=0x7bf000,
> common=0x0, result=0xbfffed28) at merge-recursive.c:1164
common=0x0, that's the issue.
> #2  0x00088960 in merge_recursive (o=0xbfffedd4, h1=0x4f4060, h2=0x4f4000,
> ca=0x53cc20, result=0xbfffee2c) at merge-recursive.c:1294

However, here I read in my version of merge-recursive.c that "common" is the tree of merged_common_ancestor, which is either set to "pop_commit(&ca)", i.e. to one of the common ancestors, or to a virtual commit, that must have a tree.

So it would be good if you could debug this further, letting me know where the merged_common_ancestor came from, and why it does not have a tree.

Thanks, Dscho

Brian Moran· Jan 31, 2009, 00:05 UTC · re: Johannes Schindelin · lore

Re: Bus Error- git merge

With subsequent changes to the merged-to repository, the bug does not
manifest. I will attempt to reproduce when we encounter it next.
 

On 1/30/09 10:57 AM, "Johannes Schindelin" <Johannes.Schindelin@gmx.de> wrote:

Show 11 quoted lines
> Hi,
> 
> On Fri, 30 Jan 2009, Brian Moran wrote:
> 
>> I am getting a bus error on a git merge, including the more recent versions.
>> Following the instructions from a bug August, I got the latest sources,
>> compiled them up, and executed the merge in the debugger to repro. Here¹s
>> what I found:
> 
> Is it possible that your branch has submodules?
> 
Johannes Schindelin· Feb 1, 2009, 22:48 UTC · re: Brian Moran · lore

Re: Bus Error- git merge

Hi,
On Fri, 30 Jan 2009, Brian Moran wrote:
> With subsequent changes to the merged-to repository, the bug does not
> manifest. I will attempt to reproduce when we encounter it next.

Please do not top-post; it is annoying. If that is not good enough a reason for you to avoid it: it is also against the customs in this list.

Second, it is a pity that you did not work with me to resolve the issue. I would have liked to squash this bug very much, but your unwillingness to work with me on the bug does not make me enthusiastic about trying to help you in the future. As it is, my time writing the mails to you seems to have been wasted.

Ciao, Dscho

← back to recent threads