From: Dennis Kaarsemaker <dennis@kaarsemaker.net>
To: Eric Sunshine <sunshine@sunshineco.com>
Cc: "Git List" <git@vger.kernel.org>,
"Nguyễn Thái Ngọc" <pclouds@gmail.com>,
"Junio C Hamano" <gitster@pobox.com>
Subject: Re: [PATCH v4] reflog-walk: don't segfault on non-commit sha1's in the reflog
Date: Wed, 06 Jan 2016 10:13:44 +0100 [thread overview]
Message-ID: <1452071624.2668.21.camel@kaarsemaker.net> (raw)
In-Reply-To: <CAPig+cQ7MineqezZXxpfAotVwoM9Ju1qwVGpEnEh9qNKBF1Pjg@mail.gmail.com>
On di, 2016-01-05 at 20:52 -0500, Eric Sunshine wrote:
> On Tue, Jan 5, 2016 at 8:28 PM, Eric Sunshine <
> sunshine@sunshineco.com> wrote:
> > On Tue, Jan 5, 2016 at 8:20 PM, Dennis Kaarsemaker
> > <dennis@kaarsemaker.net> wrote:
> > > On di, 2016-01-05 at 20:05 -0500, Eric Sunshine wrote:
> > > > Hmm, this test is successful for me on OS X even without the
> > > > reflog-walk.c changes applied.
> > > >
> > > > And this test actually fails (inversely) because it's expecting
> > > > a
> > > > failure, but doesn't get one since the command produces the
> > > > expected
> > > > output.
> > >
> > > That's... surprising to say the least. What's the content of
> > > 'actual',
> > > and which git.git commit are you on?
> >
> > % cat t/trash\ directory.t1410-reflog/actual
> > b60a214 refs/tests/tree-in-reflog@{0}: Restoring to commit
> > 140c527 refs/tests/tree-in-reflog@{1}: Forcing tree
> > b60a214 refs/tests/tree-in-reflog@{2}: Creating ref
> > %
> >
> > This is with only the t/t1410-reflog.sh changes from your patch
> > applied atop current 'master' (SHA1 7548842).
>
> By the way, the segfault does occur for me on Linux and FreeBSD.
>
> And, in all cases, on all tested platforms, with the full patch
> applied, both tests behave sanely (in the expected fashion). So, even
> though the crash doesn't manifest everywhere, the fact that the tests
> are meaningfully testing it on the "affected" platforms may mean that
> it's not worth worrying about why it doesn't segfault on OS X.
>
> (Of course, practicality aside, one might want to satisfy one's
> intellectual curiosity about why it behaves differently on OS X.)
The only explanation I can think of (and that's with practically no
knowledge of OS X internals) is that OS X's memory allocation strategy
is unlucky. Git is definitely writing to a location it should not write
to. On linux and freebsd this is unallocated memory, so you get a
segfault. On OS X, it happens to be memory actually allocated by git,
resulting not in a segfault but in silent corruption of other in-memory
data. I would argue that this is a much worse result, even though in
this small test that corruption seems to not trigger a crash.
--
Dennis Kaarsemaker
http://www.kaarsemaker.net
next prev parent reply other threads:[~2016-01-06 9:13 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-30 9:24 Segfault in git reflog Dennis Kaarsemaker
2015-12-30 10:31 ` Duy Nguyen
2015-12-30 11:17 ` Dennis Kaarsemaker
2015-12-30 11:26 ` Duy Nguyen
2015-12-30 11:28 ` Duy Nguyen
2015-12-30 12:28 ` Dennis Kaarsemaker
2015-12-30 13:19 ` Duy Nguyen
2015-12-30 15:22 ` [PATCH] reflog-walk: don't segfault on non-commit sha1's in the reflog Dennis Kaarsemaker
2015-12-30 21:20 ` Junio C Hamano
2015-12-30 21:33 ` Dennis Kaarsemaker
2015-12-30 21:41 ` Junio C Hamano
2015-12-30 21:49 ` Dennis Kaarsemaker
2015-12-30 22:17 ` [PATCH v2] " Dennis Kaarsemaker
2015-12-30 22:42 ` Junio C Hamano
2015-12-30 23:33 ` [PATCH v3] " Dennis Kaarsemaker
2015-12-31 0:02 ` Junio C Hamano
2015-12-31 8:57 ` Dennis Kaarsemaker
2015-12-31 15:43 ` Dennis Kaarsemaker
2016-01-05 21:12 ` [PATCH v4] " Dennis Kaarsemaker
2016-01-06 1:05 ` Eric Sunshine
2016-01-06 1:20 ` Dennis Kaarsemaker
2016-01-06 1:28 ` Eric Sunshine
2016-01-06 1:52 ` Eric Sunshine
2016-01-06 9:13 ` Dennis Kaarsemaker [this message]
2016-01-06 9:30 ` Duy Nguyen
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=1452071624.2668.21.camel@kaarsemaker.net \
--to=dennis@kaarsemaker.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pclouds@gmail.com \
--cc=sunshine@sunshineco.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.