# git range-diff <range1> <range2> throws Segmentation fault

4 messages from 2019-08-30 to 2019-09-03. Participants: van den Berg, Kasper, Thomas Gummerer, Johannes Schindelin.
Thread: https://gitlist.dev/t/51779

## van den Berg, Kasper, 2019-08-30 07:19

Subject: git range-diff <range1> <range2> throws Segmentation fault
Message-ID: <6802cf61dcbf438cb2e01cd390c57390@EML-MBX11-DAY.ad.reyrey.com>
URL: https://gitlist.dev/e/6802cf61dcbf438cb2e01cd390c57390%40EML-MBX11-DAY.ad.reyrey.com

```
Hello,

`git range-diff <range1> <range2>` prints "segmentation fault" to the console and nothing else.  It happens in git version 2.23.0.windows.1 and only occurs for some branches in my repository.  I have not exactly determined when it does happen and when it does not (I'm not familiar with git's codebase).  These are my results:

Status	Version			Config												Result
✘	2.23.0.windows.1	64-bit, local											Segmentation fault
✘	2.23.0.windows.1	64-bit, local, different ranges related to my current work					Segmentation fault
✔	2.23.0.windows.1	64-bit, local, different ranges completely different from my current work			Expected range-diff output
✘	2.23.0.windows.1	Remote connection to same workdir								Segmentation fault
✔	2.23.0.windows.1	64-bit, local, fresh clone, different ranges completely different from my current work	Expected range-diff output
✘	2.23.0.windows.1	32-bit, local											Segmentation fault
✔	2.21.0.windows.1	64-bit, local											Expected range-diff output
✔	2.21.0.windows.1	64-bit, remoteconnection to same workdir							Expected range-diff output

Both <range1> and <range2> comprise between 213 and 270 commits; git gc counts 140394 objects (Total 140394 (delta 110638), reused 137275 (delta 107799)).  I have not preserved the offending branch names.  However, they contain 2 or more slashes and perhaps an at-sign (e.g. 'feature/'<featurename>, 'tmp/old@{'<i>'}/feature/'<featurename>, 'develop', and 'tmp/project-base').

To avoid the problem I returned to using git version 2.21.0.windows.1

I there something I should take into account when doing `git range-diff` on a workdir or on a ranges of commits?  What things should I look for?  How can I repair the broken ranges?  Why does version 2.21.0.windows.1 work while version 2.23.0.windows.1 does not?

With kind regards,
Kasper van den Berg

```

## Thomas Gummerer, 2019-08-30 09:12

Subject: Re: git range-diff <range1> <range2> throws Segmentation fault
Message-ID: <20190830091227.GD48344@cat>
URL: https://gitlist.dev/e/20190830091227.GD48344%40cat
In-Reply-To: <6802cf61dcbf438cb2e01cd390c57390@EML-MBX11-DAY.ad.reyrey.com>

```
On 08/30, van den Berg, Kasper wrote:
> Hello,
>
> `git range-diff <range1> <range2>` prints "segmentation fault" to
> the console and nothing else.  It happens in git version
> 2.23.0.windows.1 and only occurs for some branches in my repository.
> I have not exactly determined when it does happen and when it does
> not (I'm not familiar with git's codebase).  These are my results:

Thanks for your bug report.

I guess this is probably related to my patch series aiming at giving
nicer output in 'git range-diff', which probably introduced some bug.

> Status	Version			Config												Result
> ✘	2.23.0.windows.1	64-bit, local											Segmentation fault
> ✘	2.23.0.windows.1	64-bit, local, different ranges related to my current work					Segmentation fault
> ✔	2.23.0.windows.1	64-bit, local, different ranges completely different from my current work			Expected range-diff output
> ✘	2.23.0.windows.1	Remote connection to same workdir								Segmentation fault
> ✔	2.23.0.windows.1	64-bit, local, fresh clone, different ranges completely different from my current work	Expected range-diff output
> ✘	2.23.0.windows.1	32-bit, local											Segmentation fault
> ✔	2.21.0.windows.1	64-bit, local											Expected range-diff output
> ✔	2.21.0.windows.1	64-bit, remoteconnection to same workdir							Expected range-diff output
>
> Both <range1> and <range2> comprise between 213 and 270 commits; git
> gc counts 140394 objects (Total 140394 (delta 110638), reused 137275
> (delta 107799)).  I have not preserved the offending branch names.
> However, they contain 2 or more slashes and perhaps an at-sign
> (e.g. 'feature/'<featurename>,
> 'tmp/old@{'<i>'}/feature/'<featurename>, 'develop', and
> 'tmp/project-base').

I don't think branch names would cause this, but rather some diff that
range-diff doesn't handle correctly.  Would you be able to gather a
backtrace from the segfault (not sure how to do this on Windows), or
share the repository where this segmentation fault occurs? 

> To avoid the problem I returned to using git version 2.21.0.windows.1
> 
> I there something I should take into account when doing `git
> range-diff` on a workdir or on a ranges of commits?  What things
> should I look for?  How can I repair the broken ranges?  Why does
> version 2.21.0.windows.1 work while version 2.23.0.windows.1 does
> not?

I don't think there's anything you should do here, this sounds like a
bug in Git that should be fixed.  It would be great if you could help
with some more details per above though, otherwise it's going to be
hard to track this down.

> With kind regards,
> Kasper van den Berg

```

## Johannes Schindelin, 2019-08-30 19:48

Subject: Re: git range-diff <range1> <range2> throws Segmentation fault
Message-ID: <nycvar.QRO.7.76.6.1908302147490.46@tvgsbejvaqbjf.bet>
URL: https://gitlist.dev/e/nycvar.QRO.7.76.6.1908302147490.46%40tvgsbejvaqbjf.bet
In-Reply-To: <6802cf61dcbf438cb2e01cd390c57390@EML-MBX11-DAY.ad.reyrey.com>

```
Hi Kasper,

On Fri, 30 Aug 2019, van den Berg, Kasper wrote:

> `git range-diff <range1> <range2>` prints "segmentation fault" to the
> console and nothing else.  It happens in git version 2.23.0.windows.1
> and only occurs for some branches in my repository.

Maybe you can come up with a Minimal, Complete and Verifiable Example
(https://stackoverflow.com/help/mcve)?

Ciao,
Johannes

```

## van den Berg, Kasper, 2019-09-03 06:34

Subject: RE: git range-diff <range1> <range2> throws Segmentation fault
Message-ID: <a675af41c66a457f97fe0e61d914fe58@EML-MBX11-DAY.ad.reyrey.com>
URL: https://gitlist.dev/e/a675af41c66a457f97fe0e61d914fe58%40EML-MBX11-DAY.ad.reyrey.com
In-Reply-To: <nycvar.QRO.7.76.6.1908302147490.46@tvgsbejvaqbjf.bet>

```
Hi Johannes, hello Thomas,

Currently, I'm approaching a release deadline and there are some tasks with higher priority waiting for me and creating a MCVE takes some time.  Creating the stacktrace and ensuring I don't leak proprietary code also takes more time than I can currently afford.
In two weeks I might have more time.  If needed, I will try to help with appropriate error data and/or a reproduction.

With kind regards,
Kasper van den Berg

-----Oorspronkelijk bericht-----
Van: Johannes Schindelin <Johannes.Schindelin@gmx.de> 
Verzonden: vrijdag 30 augustus 2019 21:49
Aan: van den Berg, Kasper <Kasper_vandenBerg@reyrey.com>
CC: git@vger.kernel.org
Onderwerp: Re: git range-diff <range1> <range2> throws Segmentation fault

Hi Kasper,

On Fri, 30 Aug 2019, van den Berg, Kasper wrote:

> `git range-diff <range1> <range2>` prints "segmentation fault" to the 
> console and nothing else.  It happens in git version 2.23.0.windows.1 
> and only occurs for some branches in my repository.

Maybe you can come up with a Minimal, Complete and Verifiable Example (https://stackoverflow.com/help/mcve)?

Ciao,
Johannes

```
