X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Mon, 22 Mar 2010 12:15:32 +0100 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: Cygwin1.dll 1.7.1 causes ActivePerl 5.10 hang on gzip pipe close on Windows Server 2003 Message-ID: <20100322111532.GB32321@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <87336DA2FD996C4FAB2DE4988F20DD8C9D4897 AT SRV01 DOT ghc DOT local> <30FB0BA95FB54CEAAB93ACE5DFD7D427 AT ghc DOT local> <87336DA2FD996C4FAB2DE4988F20DD8CCBE305 AT SRV01 DOT ghc DOT local> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87336DA2FD996C4FAB2DE4988F20DD8CCBE305@SRV01.ghc.local> User-Agent: Mutt/1.5.20 (2009-06-14) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Mar 19 15:13, Matthew Kidd wrote: > >> I upgraded to Cygwin 1.7.1 on a (64-bit) Windows Server 2003 and > >> immediately ran into trouble. It seems that Perl can no longer > shutdown > >> pipes related to Cygwin executables. Here is some example code: > >> > >> #!/usr/bin/perl > >> > >> use strict; > >> > >> # my $fname = 'Y:\path\to\ratherbigfile.gz'; > >> my $fname = '/cygdrive/y/path/to/ratherbigfile.gz'; > >> > >> open(FH, "gzip -dc $fname |") || die 'open failed.'; > >> for (1..4) { my $fline = ; print $fline; } > >> > >> close(FH); > >> print "done\n"; > >> > >> > >> Before Cygwin 1.7.1 this code ran fine. It printed out four lines, > closed > >> the pipe, and exited. But now it hangs at the close(FH) statement and > the > >> child gzip process maxes out a core continuing to uncompress the big > >> file. I either have to kill the gzip process or the Perl process. > This > >> problem happens whether I use a Windows style file path or a Unix > style > >> file path. It doesn't matter if I use 32-bit or 64-bit Perl. > >> > >> If I replace the cygwin1.dll file from the 1.7.1 installation with an > >> older version of cygwin1.dll from a different installation > (specifically > >> 1.5.25 cr-0x5f1), the code above works fine (though I imagine mixing > and > >> matching DLL version is not a good long term solution). > > > Try the latest developer snapshot from http://cygwin.com/snapshots/ > > fixes your problem. > > I had no luck with the 1.7.2 cygwin1.dll from the developer snapshot. > Since the 1.7.1 Cygwin package does not show this problem on a 32-bit > Windows 7 box I think it is a 64-bit architecture issue. I have no problem running your testcase with Windows 7 64 and the latest Cygwin from CVS. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- 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