Subject: Re: git-fast-import crashes

From: "Shawn O. Pearce" <[email-masked]>
Date: Fri, 12 Oct 2007 23:29:16 -0400

Shun Kei Leung <[email-masked]> wrote:
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x64617469
> in_window (win=0x5004d0, offset=3501) at sha1_file.c:701
> 701             off_t win_off = win->offset;
...
> (gdb) print win
> $1 = (struct pack_window *) 0x5004d0
> (gdb) print *win
> $2 = {
>   next = 0x64617461,
>   base = 0x20333936 <Address 0x20333936 out of bounds>,
>   offset = 22523564414626158,
>   len = 1685026675,
>   last_used = 795894075,
>   inuse_cnt = 0
> }

Wow.  There's no way that struct pack_window is valid anymore.
The base isn't a valid address.  The offset cannot possibly be
correct (you don't have that big of a packfile, do you?!

What does `git count-objects -v` give you?  I'm specifically
interested in how many packfiles you have.  The other thing that
may be interesting to see is the value of pack_open_windows and
peak_pack_open_windows (file scope in sha1_file.c).

Then again, maybe that isn't interesting.  This looks like it is
memory corruption (e.g. someone overwriting a free'd segment),
but that sort of memory corruption is very hard to track down.

-- 
Shawn.