delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/05/10/13:22:17

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-0.3 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD
X-Spam-Check-By: sourceware.org
MIME-version: 1.0
Subject: Re: Cygwin 1.7.x on Windows 7: Exit statuses of Win32 executables are sometimes wrong
From: John Dong <jdong AT apple DOT com>
In-reply-to: <0C817B08-1920-43DB-B9A0-26E4B2E362EA@apple.com>
Date: Tue, 10 May 2011 10:21:54 -0700
Message-id: <F06A88A0-4F78-4BD3-B826-FA1D23086F17@apple.com>
References: <0C817B08-1920-43DB-B9A0-26E4B2E362EA AT apple DOT com>
To: cygwin AT cygwin DOT com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

I can still reproduce this on the latest snapshot. I also tried some different hardware and virtual machines too, and I don't think my machine is to blame.

Has anyone else been able to reproduce this bug? Or have pointers of further things I can do to diagnose it?


Thanks in advance,

John

On Apr 29, 2011, at 11:35 AM, John Dong wrote:

> Hi,
> 
> Cygwin on Windows 7, seems to exhibit a rather peculiar behavior: Sometimes the exit status of a Win32 process is incorrectly captured by Cygwin.
> 
> I'm running Cygwin 1.7.9(0.237/5/3) on Windows 7 64-bit, but I've reproduced this behavior with every release of Cygwin 1.7 on both 32-bit and 64-bit Windows 7. It does not seem to happen in XP 32-bit, and I've not tried any other environments.
> 
> 
> To reproduce, first I wrote a Win32 console application (using Visual Studio 2010 / cl.exe version 16 as my compiler) that exits with the status the user passes in:
> 
>> int _tmain(int argc, _TCHAR* argv[])
>> {
>> 	int ret = _ttoi(argv[1]);
>> 	_tprintf(_T("Exiting with %i\n"), ret); 
>> 	
>> 	return ret;
>> }
> 
> 
> Then, I wrote a shell script that called this executable ("exiter.exe") with argument 0 in an infinite loop:
> 
>> #!/bin/sh
>> set -e
>> while true; do
>> /cygdrive/c/exiter.exe 0
>> echo $?
>> done
>> 
> 
> I expect this script to run forever, as the exit code should always be zero. However, after running this overnight, I see the script terminate:
> 
>> Exiting with 0
>> 0
>> Exiting with 0
>> 0
>> Exiting with 0
>> 0
>> Exiting with 0
>> 0
>> Exiting with 0
>> 
>> $ echo $?
>> 1
>> 
> 
> 
> 
> The last line of output implies that exiter.exe executed "return 0", but /bin/sh saw a nonzero exit status (of 1) and thus stopped execution due to -e.
> 
> Reproducing this seems nondeterministic -- sometimes I can get it to happen in 5 minutes, other times it takes overnight. I've tried using a different shell (like dash), but it doesn't make a difference, leading me to suspect this to be a lower-level issue within the Cygwin DLL. It also seems to not happen for non-zero exit codes (e.g. checking that exiter.exe 1 returns 1 always seems to succeed), though I'm not 100% confident that I've tested this thoroughly enough.
> 
> Again, I've not been able to reproduce this under Windows XP using any version of Cygwin, but I have been able to reproduce it on both 32-bit and 64-bit Windows 7. I'm not running anything special on this machine -- it's a fresh install of Windows 7 Professional, just with Cygwin installed.
> 
> 
> Thanks in advance,
> 
> John
> 
> 
> --
> Problem reports:       http://cygwin.com/problems.html
> FAQ:                   http://cygwin.com/faq/
> Documentation:         http://cygwin.com/docs.html
> Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
> 


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019