From: Thomas Rast <trast@inf.ethz.ch>
To: Ben Tebulin <tebulin@googlemail.com>
Cc: Junio C Hamano <gitster@pobox.com>, <git@vger.kernel.org>,
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>,
Stefan Beller <stefanbeller@googlemail.com>
Subject: Re: Reproducible, corrupt packfile after fresh git-svn checkout message
Date: Wed, 14 Aug 2013 11:09:41 +0200 [thread overview]
Message-ID: <877gfok59m.fsf@linux-k42r.v.cablecom.net> (raw)
In-Reply-To: <5204E018.4000808@gmail.com> (Ben Tebulin's message of "Fri, 09 Aug 2013 14:27:04 +0200")
Ben Tebulin <tebulin@googlemail.com> writes:
> Hello everybody!
>
> I have some _very interesting_ news regarding this issue!
> Here is the deal:
>
> 1. I was able to *reproduce the error on a machine of a coworker!*
>
> 2. I was able to rule out
> - HDD: It's reproducible from /dev/shm
> - Memory: Memory tests works fine
>
> now the interesting part:
>
> 3. Occurs on Linux kernels 3.7.10, 3.8.x, 3.9.11, 3.10.5
> _but not on:_ 3.6.11, 3.5.7 and 2.6.32
>
> Both machines showing this problem are »Dell Latitude E6330« with an
> »i5-3340M @ 2.70GHz« CPU. Mine running stock kernels, coworker using
> plain Ubuntu 13.04.
>
> Furthermore I need to stress, that we never had any issues with our
> devices during daily _at all_.
>
> So what to do best now?
If you're still interested...
What did memcheck86 say about these machines?
My best theory so far:
malloc()/free() actually use mmap()/munmap() for large allocations.
mallopt(3) tells me that "large" here means a dynamic limit on modern
glibc, but with an upper limit of 32MB on 64-bit. So your 39MB blob
would always result in an mmap() type allocation.
And it should be easy for glibc to check mmap() type allocations against
double free(), at least if the address has not been mapped again in the
same process. So it probably does that, which aborts the program.
You could try to gather some data on this by looking at
strace -o fsck.trace -f git fsck
for a crash case. If the theory is correct, you should see an munmap()
for an address similar to the one pointed out by the glibc error
message, as follows: if you get
*** glibc detected *** <unknown>: free(): invalid pointer: 0x00007fe129669010 ***
check for the address 0x7fe129669000 (the start of the page that the
address is in).
Note that this is a pretty weak theory, because double free() detection
is squarely up valgrind's alley. So valgrind's lack of complaints is a
strong argument against it. But it's the best I've got so far.
--
Thomas Rast
trast@{inf,student}.ethz.ch
next prev parent reply other threads:[~2013-08-14 9:09 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <52037F47.5010302@exxcellent.de>
[not found] ` <52037F84.9060006@exxcellent.de>
2013-08-08 11:56 ` Reproducible, corrupt packfile after fresh gitml.jexpert
2013-08-08 12:13 ` Thomas Rast
2013-08-08 12:23 ` Reproducible, corrupt packfile after fresh git-svn checkout gitml.jexpert
2013-08-08 12:31 ` Thomas Rast
2013-08-08 13:12 ` Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) gitml.jexpert
2013-08-08 13:18 ` Matthieu Moy
2013-08-08 13:27 ` Reproducible, corrupt packfile after fresh git-svn checkout message gitml.jexpert
2013-08-08 13:34 ` Matthieu Moy
2013-08-08 13:43 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) gitml.jexpert
2013-08-08 14:20 ` Thomas Rast
2013-08-08 14:53 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 " Ben Tebulin
2013-08-08 15:28 ` Thomas Rast
2013-08-08 16:36 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin
2013-08-08 16:48 ` Matthieu Moy
2013-08-08 17:38 ` Reproducible, corrupt packfile after fresh git-svn checkout message (gitml: message 5 of 20) (gitml: message 6 of 20) Junio C Hamano
2013-08-09 12:27 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin
2013-08-09 12:54 ` Stefan Beller
2013-08-14 9:29 ` Reproducible, corrupt packfile after fresh git-svn checkouts - IDENTIFIED Ben Tebulin
2013-08-14 9:09 ` Thomas Rast [this message]
2013-08-14 9:47 ` Reproducible, corrupt packfile after fresh git-svn checkout message Ben Tebulin
2013-08-15 9:32 ` Ben Tebulin
2013-08-15 14:46 ` Junio C Hamano
2013-08-08 13:20 ` Reproducible, corrupt packfile after fresh git-svn checkout message 3 of 20) Thomas Rast
2013-08-08 12:38 ` Reproducible, corrupt packfile after fresh git-svn checkout Matthieu Moy
2013-08-08 12:41 ` Stefan Beller
2013-08-08 12:18 ` Reproducible, corrupt packfile after fresh Stefan Beller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877gfok59m.fsf@linux-k42r.v.cablecom.net \
--to=trast@inf.ethz.ch \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=stefanbeller@googlemail.com \
--cc=tebulin@googlemail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.