threads / discuss / 15098

git merge bus error

Subject: git merge bus error

## tl;dr

3 messages between Aug 19, 2008 and Aug 20, 2008.

replies: 2people: 3as markdown or json

Lucas Carlson· Aug 19, 2008, 22:23 UTC · lore

/usr/local/bin/git-merge: line 438: 19000 Bus error git- merge-$strategy $common -- "$head_arg" "$@"

I have tried every merge strategy there is. It ends up leaving a .git/ index.lock file. I used git 1.5.6 and tried upgrading to 1.6.0. The only thing 1.6.0 did was hide this bus error message but I assume it still bus errors because there is a .git/index.lock file still.

Unfortunately the source code is proprietary so I can not let you try it on your own but let me know what I can run on my machine to help you guys track down this bus error.

-Lucas http://rufy.com/

Shawn O. Pearce· Aug 19, 2008, 23:49 UTC · re: Lucas Carlson · lore

Re: git merge bus error

Lucas Carlson <lucas.carlson@me.com> wrote:
Show 11 quoted lines
> /usr/local/bin/git-merge: line 438: 19000 Bus error               git- 
> merge-$strategy $common -- "$head_arg" "$@"
>
> I have tried every merge strategy there is. It ends up leaving a .git/ 
> index.lock file. I used git 1.5.6 and tried upgrading to 1.6.0. The only 
> thing 1.6.0 did was hide this bus error message but I assume it still bus 
> errors because there is a .git/index.lock file still.
>
> Unfortunately the source code is proprietary so I can not let you try it 
> on your own but let me know what I can run on my machine to help you guys 
> track down this bus error.

Build git with debugging symbols enabled and run git merge from 1.6.0 under gdb. If it gets a bus error we'll at least get a stack trace in gdb and can see where we were when the corruption killed us. Its a start.

If `gdb git merge` doesn't come up with the corruption then it is the git-merge-recursive backend. Try running it from the libexec directory (see git --exec-path) under gdb and passing into it as arguments:

	$(git merge-base HEAD $branch) -- HEAD $branch

where $branch is what you were giving to git merge in the first place.

Again, let us know what the trace is so we can at least narrow down where the corruption killed it. Once we know more than just "it dies" we'll probably be able to ask more interesting questions to help narrow it down.

-- 
Shawn.
Junio C Hamano· Aug 20, 2008, 00:00 UTC · re: Shawn O. Pearce · lore

Re: git merge bus error

"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 17 quoted lines
> Lucas Carlson <lucas.carlson@me.com> wrote:
>> /usr/local/bin/git-merge: line 438: 19000 Bus error               git- 
>> merge-$strategy $common -- "$head_arg" "$@"
>>
>> I have tried every merge strategy there is. It ends up leaving a .git/ 
>> index.lock file. I used git 1.5.6 and tried upgrading to 1.6.0. The only 
>> thing 1.6.0 did was hide this bus error message but I assume it still bus 
>> errors because there is a .git/index.lock file still.
>>
>> Unfortunately the source code is proprietary so I can not let you try it 
>> on your own but let me know what I can run on my machine to help you guys 
>> track down this bus error.
>
> Build git with debugging symbols enabled and run git merge from
> 1.6.0 under gdb.  If it gets a bus error we'll at least get a stack
> trace in gdb and can see where we were when the corruption killed us.
> Its a start.

With index.lock still present, anything that calls hold_locked_index() would die(). I am curious how it gets sigbus instead.

← back to recent threads