Re: [BUG] Core dump w/ bus error on bad mmap'd packfile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Amit Bakshi <ambakshi@xxxxxxxxx> writes:

>  I was getting core dumps (bus error 7) with git 1.7.1 when doing a
> git checkout. I tried git fsck, and same thing. I got the same with
> precompiled rpms of 1.7.12, and with a locally compiled version of git
> 1.8.5.
[...]
> $ git fsck
> Checking pack-0ccb5ee4f60003a7ea47d6904633cce5973efa60.pack
> in: 0x7f9070507000 remain: 17345210 offset: 17345230
> Bus error (core dumped)
>
> git verify-pack correctly shows the error, without a bus error.
>
> $ git verify-pack -v pack-0ccb5ee4f60003a7ea47d6904633cce5973efa60.pack
> fatal: read error on input: Input/output error
> pack-0ccb5ee4f60003a7ea47d6904633cce5973efa60.pack: bad

mmap()ing a file and attempting to read from parts that the kernel can
then not page in (in your case because it couldn't read the file) are
expected to give a SIGBUS, so there is no bug here.  The different
behavior comes from some commands using mmap() and some using read() to
access the packs.

Perhaps we could try to map the faulting address back to the file it
came from, though.  The siginfo_t for a SIGBUS contains information
about the faulting address, so for the case of packs we could walk the
'struct packed_git' list and see which open window the address belongs
to.  I need to think about the implications of doing that in a signal
handler, though.

-- 
Thomas Rast
tr@xxxxxxxxxxxxx
--
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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]