X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:subject:message-id:reply-to :references:mime-version:content-type:in-reply-to; q=dns; s= default; b=HetW0/wTr992ssJlXa0zp+kBS+mc06XbFxjxYhFSj0ulPrR6hugca ul3hoBFrIPZMIMxiB4sti1kYbDPGe6bs9fC21VdQus/gLB/eNVaABKphzWguLZEl PuNSUjm0xKUO0EtWeMSLivvts6t5fIrDoyM4JAhMY6NtNZME6IBXGw= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:subject:message-id:reply-to :references:mime-version:content-type:in-reply-to; s=default; bh=3Uhj7cPG3QvNppSuoRDPtD81Bq0=; b=MxvtDdp4zHlENkvqZ2+SWCEGXRWs OqZvcsWksgQBD0MFUB4YCGWYByexovBLwN1Gt/ZsahC6/YjBje32yo5x+BWTyFav Nl04ZpzhWKOCyxeZG8aS34nejyLM7LEOvBaSCqK7FbbBTkuXD800eqKGoWy77bFk 7D6RMvpVkNGgaM8= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,TO_NO_BRKTS_PCNT autolearn=ham version=3.3.1 Date: Thu, 23 May 2013 23:14:58 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: make, PATH & "Win32 error 487" Message-ID: <20130523211458.GA12260@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <20130523160711 DOT GB25295 AT calimero DOT vinschen DOT de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20130523160711.GB25295@calimero.vinschen.de> User-Agent: Mutt/1.5.21 (2010-09-15) On May 23 18:07, Corinna Vinschen wrote: > On May 23 10:14, Satish Balay wrote: > > [...] > > - It appears to be related to the huge length of one of the commands - and > > length of PATH > > - I tried it on 3 different machines [with differences in default installed software] > > win2008/x64 - breaks when PATH is over 1.5K chars > > win2003/x32 - breaks when PATH is over 2K chars > > win7/x32 - breaks when PATH is over 20K chars. > > > > Any ideas on how to debug this further to better understand the issue > > - or workarrounds? This is with latest cygwin [and rebaseall done > > correctly] > > There's perhaps not much you can do. First of all, the problem is known > for a while, but even though we're trying a lot of stuff to make sure > that fork works, the OS has some funny notions sometimes, which make it > hard to get fork 100% reliable. > > In this case, there's a subtil difference between the first shell > started from make, and a forked subshell. The difference is something > to do with the size of $PATH which results in a different position of > the main stack in the forked child process. This breaks fork because > fork semantics require to be able to reproduce the parent memory in the > child process. > > Thanks for the test case. I'm just investigating what happens exactly, > and I have a few ideas how we can workaround this problem to make fork > a bit more reliable in this situation. This requires some fiddling > around, so, just stay tuned for a couple of days. After some experimenting, it looks like I found a surprisingly simple solution. I checked in a patch to CVS, and I'm just generating a new developer's snapshot. Please try the just uploaded today's snapshot from http://cygwin.com/snapshots/ Exchanging just the DLL should be sufficient. Please report back. Btw., there's an upper bound for the size of a single environment variable of about 32K. Right now, if $PATH reaches this size, forking any further process fails silently. I don't know why yet, but as far as I'm concerned this is no pressing issue. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer 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