threads / discuss / 17179

cygwin git diff crash

Subject: cygwin git diff crash

## tl;dr

6 messages between Jan 14, 2009 and Jan 16, 2009.

replies: 5people: 2as markdown or json

Jeremy Ramer· Jan 14, 2009, 22:09 UTC · lore

Ok this is a weird issue and it's probably cygwin's fault, but I haven't found any way to fix it so I' thought I would throw it out here for comment.

I am using git 1.6.0.4 on cygwin. I have a repo where if any file has
changes and git detects as mode 100644 I get this error:
$git diff
      3 [main] git 2744 C:\cygwin\bin\git.exe: *** fatal error - could
not load user32, Win32 error

If I change the mode to 100755 git diff will work fine. $chmod a+x test.cpp $git diff

diff --git a/test.cpp b/test.cpp
old mode 100644
new mode 100755
index 7c0dfcd..20987a7
--- a/test.cpp
+++ b/test.cpp
@@ -6,9 +6,11 @@ int main()

 void func()
 {
+       int a;^M
 }

 void func2()
 {
+       int b;^M
 }

Anybody have a clue as to why this might occur?  I have seen this in
many of the repo's I use, but it is not repeatable.  I tried making a
test repo but could not reproduce.

Thanks!
Jeremy
Johannes Schindelin· Jan 14, 2009, 22:33 UTC · re: Jeremy Ramer · lore

Re: cygwin git diff crash

Hi,
On Wed, 14 Jan 2009, Jeremy Ramer wrote:
Show 34 quoted lines
> Ok this is a weird issue and it's probably cygwin's fault, but I
> haven't found any way to fix it so I' thought I would throw it out
> here for comment.
> 
> I am using git 1.6.0.4 on cygwin. I have a repo where if any file has
> changes and git detects as mode 100644 I get this error:
> $git diff
>       3 [main] git 2744 C:\cygwin\bin\git.exe: *** fatal error - could
> not load user32, Win32 error
> 
> If I change the mode to 100755 git diff will work fine.
> $chmod a+x test.cpp
> $git diff
> diff --git a/test.cpp b/test.cpp
> old mode 100644
> new mode 100755
> index 7c0dfcd..20987a7
> --- a/test.cpp
> +++ b/test.cpp
> @@ -6,9 +6,11 @@ int main()
> 
>  void func()
>  {
> +       int a;^M
>  }
> 
>  void func2()
>  {
> +       int b;^M
>  }
> 
> Anybody have a clue as to why this might occur?  I have seen this in
> many of the repo's I use, but it is not repeatable.  I tried making a
> test repo but could not reproduce.
Wow, that _is_ weird.  Does your test suite pass?

Ciao, Dscho

Jeremy Ramer· Jan 15, 2009, 14:42 UTC · re: Johannes Schindelin · lore

Re: cygwin git diff crash

On Wed, Jan 14, 2009 at 3:33 PM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:

Show 44 quoted lines
> Hi,
>
> On Wed, 14 Jan 2009, Jeremy Ramer wrote:
>
>> Ok this is a weird issue and it's probably cygwin's fault, but I
>> haven't found any way to fix it so I' thought I would throw it out
>> here for comment.
>>
>> I am using git 1.6.0.4 on cygwin. I have a repo where if any file has
>> changes and git detects as mode 100644 I get this error:
>> $git diff
>>       3 [main] git 2744 C:\cygwin\bin\git.exe: *** fatal error - could
>> not load user32, Win32 error
>>
>> If I change the mode to 100755 git diff will work fine.
>> $chmod a+x test.cpp
>> $git diff
>> diff --git a/test.cpp b/test.cpp
>> old mode 100644
>> new mode 100755
>> index 7c0dfcd..20987a7
>> --- a/test.cpp
>> +++ b/test.cpp
>> @@ -6,9 +6,11 @@ int main()
>>
>>  void func()
>>  {
>> +       int a;^M
>>  }
>>
>>  void func2()
>>  {
>> +       int b;^M
>>  }
>>
>> Anybody have a clue as to why this might occur?  I have seen this in
>> many of the repo's I use, but it is not repeatable.  I tried making a
>> test repo but could not reproduce.
>
> Wow, that _is_ weird.  Does your test suite pass?
>
> Ciao,
> Dscho
>

Forgive my ignorance, but I am not sure how to run the test suite. I did a quick google search but didn't find anything. I am using cygwin's packaged version of git and am not building it from source, so maybe the suite is not available. If I get a chance I will try building from source.

Jeremy
Johannes Schindelin· Jan 15, 2009, 15:34 UTC · re: Jeremy Ramer · lore

Re: cygwin git diff crash

Hi,
On Thu, 15 Jan 2009, Jeremy Ramer wrote:
Show 52 quoted lines
> On Wed, Jan 14, 2009 at 3:33 PM, Johannes Schindelin
> <Johannes.Schindelin@gmx.de> wrote:
> > Hi,
> >
> > On Wed, 14 Jan 2009, Jeremy Ramer wrote:
> >
> >> Ok this is a weird issue and it's probably cygwin's fault, but I
> >> haven't found any way to fix it so I' thought I would throw it out
> >> here for comment.
> >>
> >> I am using git 1.6.0.4 on cygwin. I have a repo where if any file has
> >> changes and git detects as mode 100644 I get this error:
> >> $git diff
> >>       3 [main] git 2744 C:\cygwin\bin\git.exe: *** fatal error - could
> >> not load user32, Win32 error
> >>
> >> If I change the mode to 100755 git diff will work fine.
> >> $chmod a+x test.cpp
> >> $git diff
> >> diff --git a/test.cpp b/test.cpp
> >> old mode 100644
> >> new mode 100755
> >> index 7c0dfcd..20987a7
> >> --- a/test.cpp
> >> +++ b/test.cpp
> >> @@ -6,9 +6,11 @@ int main()
> >>
> >>  void func()
> >>  {
> >> +       int a;^M
> >>  }
> >>
> >>  void func2()
> >>  {
> >> +       int b;^M
> >>  }
> >>
> >> Anybody have a clue as to why this might occur?  I have seen this in
> >> many of the repo's I use, but it is not repeatable.  I tried making a
> >> test repo but could not reproduce.
> >
> > Wow, that _is_ weird.  Does your test suite pass?
> >
> > Ciao,
> > Dscho
> >
> 
> Forgive my ignorance, but I am not sure how to run the test suite.  I
> did a quick google search but didn't find anything.  I am using
> cygwin's packaged version of git and am not building it from source,
> so maybe the suite is not available.  If I get a chance I will try
> building from source.

It is really easy: just make sure that make, gcc, libiconv-dev, openssl-dev and libcurl-dev are installed (that's it AFAIR), then download a tarball, e.g.

	http://repo.or.cz/w/git.git?a=snapshot;h=next;sf=tgz
unpack it, cd to it and run "make".  (I would _not_ run configure...)

Hth, Dscho

Jeremy Ramer· Jan 15, 2009, 21:08 UTC · re: Johannes Schindelin · lore

Re: cygwin git diff crash

On Thu, Jan 15, 2009 at 8:34 AM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:

Show 68 quoted lines
> Hi,
>
> On Thu, 15 Jan 2009, Jeremy Ramer wrote:
>
>> On Wed, Jan 14, 2009 at 3:33 PM, Johannes Schindelin
>> <Johannes.Schindelin@gmx.de> wrote:
>> > Hi,
>> >
>> > On Wed, 14 Jan 2009, Jeremy Ramer wrote:
>> >
>> >> Ok this is a weird issue and it's probably cygwin's fault, but I
>> >> haven't found any way to fix it so I' thought I would throw it out
>> >> here for comment.
>> >>
>> >> I am using git 1.6.0.4 on cygwin. I have a repo where if any file has
>> >> changes and git detects as mode 100644 I get this error:
>> >> $git diff
>> >>       3 [main] git 2744 C:\cygwin\bin\git.exe: *** fatal error - could
>> >> not load user32, Win32 error
>> >>
>> >> If I change the mode to 100755 git diff will work fine.
>> >> $chmod a+x test.cpp
>> >> $git diff
>> >> diff --git a/test.cpp b/test.cpp
>> >> old mode 100644
>> >> new mode 100755
>> >> index 7c0dfcd..20987a7
>> >> --- a/test.cpp
>> >> +++ b/test.cpp
>> >> @@ -6,9 +6,11 @@ int main()
>> >>
>> >>  void func()
>> >>  {
>> >> +       int a;^M
>> >>  }
>> >>
>> >>  void func2()
>> >>  {
>> >> +       int b;^M
>> >>  }
>> >>
>> >> Anybody have a clue as to why this might occur?  I have seen this in
>> >> many of the repo's I use, but it is not repeatable.  I tried making a
>> >> test repo but could not reproduce.
>> >
>> > Wow, that _is_ weird.  Does your test suite pass?
>> >
>> > Ciao,
>> > Dscho
>> >
>>
>> Forgive my ignorance, but I am not sure how to run the test suite.  I
>> did a quick google search but didn't find anything.  I am using
>> cygwin's packaged version of git and am not building it from source,
>> so maybe the suite is not available.  If I get a chance I will try
>> building from source.
>
> It is really easy: just make sure that make, gcc, libiconv-dev,
> openssl-dev and libcurl-dev are installed (that's it AFAIR), then download
> a tarball, e.g.
>
>        http://repo.or.cz/w/git.git?a=snapshot;h=next;sf=tgz
>
> unpack it, cd to it and run "make".  (I would _not_ run configure...)
>
> Hth,
> Dscho
>

Well, after compiling from source the error seems to have disappeared. Strange. I have seen it disappear before and come back later so I will watch out for it, but for now it's not an issue.

Just a note, the cygwin names for the packages necessary to compile are curl-devel gcc libiconv make openssl-devel

Jeremy
Johannes Schindelin· Jan 16, 2009, 01:47 UTC · re: Jeremy Ramer · lore

Re: cygwin git diff crash

Hi,
On Thu, 15 Jan 2009, Jeremy Ramer wrote:
> Well, after compiling from source the error seems to have disappeared. 
> Strange. I have seen it disappear before and come back later so I will 
> watch out for it, but for now it's not an issue.
Well, at least it is gone for now.
Show 6 quoted lines
> Just a note, the cygwin names for the packages necessary to compile are
> curl-devel
> gcc
> libiconv
> make
> openssl-devel

Thanks, Dscho

← back to recent threads