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:message-id:date:from:reply-to:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; q=dns; s=default; b=uwBjXSCpNY5JLfmy NgVvzcqpf5btG7fJxN1xysicCQgrdB5MdjK+7kqviiV+1+zTHI0o49xOYsYmNpvt IAWdisV5nRlybe8atd2Mo8wbyFPam7XT7GkJr55jmm4yfiApP1G9PB2I2vgvmnbt l7OWTvaK6jcRXFQGPUwAFJWemlU= 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:message-id:date:from:reply-to:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; s=default; bh=A5K61pzzL5lsNxn0OxYW4+ tfcgE=; b=iRFHqnGHAjlgOOZbMUnMlp8CndzWSL+rwjPXlmIOL8D3xcqohZ/8ta diRlw3xKigMZe/t67jwulZyx2HhNWSVwSyHFK1REzmtHNaUT5arXRExCBIKrdwhU dWpUw2VRe1i9aRd2+kFxTfcb9FMX6lz0lQswcg57WeKnjrykaYAEs= 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 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 X-HELO: vms173023pub.verizon.net Message-id: <52F40DE5.4060800@cygwin.com> Date: Thu, 06 Feb 2014 17:34:13 -0500 From: "Larry Hall (Cygwin)" Reply-to: cygwin AT cygwin DOT com User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: using spawn functions to avoid fork() errors References: <000001cf226a$e8d47830$ba7d6890$@lbmsys.com> <52F2606E DOT 4030204 AT cygwin DOT com> <012a01cf2342$6d7dd310$48797930$@lbmsys.com> <52F3E1C4 DOT 4020801 AT cygwin DOT com> <025f01cf2388$d2542cd0$76fc8670$@lbmsys.com> In-reply-to: <025f01cf2388$d2542cd0$76fc8670$@lbmsys.com> Content-type: text/plain; charset=ISO-8859-1; format=flowed Content-transfer-encoding: 7bit On 2/6/2014 5:14 PM, Steven Bardwell wrote: > >> On 2/6/2014 8:50 AM, Steven Bardwell wrote: >>> Larry - thanks for the link to the source for the spawn() APIs. It > works >>> perfectly on my 32-bit install (where, as it happens, the fork() issue >>> never shows up either). >>> >>> However, on my 64-bit install, the spawnv() call is returning with an >>> error -- 'No such file or directory' -- when I try to spawn /bin/sh. >>> I have attached the output from 'strace' on this process. If you look at >>> line 602, I think you can see where the exception gets generated. Can >>> you see what is going on? I tried to create a simple test program that >>> shows the problem, but (so far) they all work. Thanks. >> >> Interesting. No, off hand, the strace output doesn't shed any light on >> the situation for me either. Clearly an access violation occurs when >> /bin/sh is spawned but if it only happens in your specific code and not >> in a simple invocation of spawn(), that suggests a possible usage problem. >> I know, that's not much help. ;-) >> >> -- >> Larry >> > I am still trying to create a simple example, but the fact that it works on > the 32-bit > install inspired me to look again at the strace output, comparing the output > from > the install that works with the 64-bit strace output that shows the problem. > > Can you look at this section? /bin/sh (the program that is getting > spawned) > gets loaded and starts running with PID 1464, but /bin/sh is failing : > > 47 8674492 [main] ulpd 2116 child_info::sync: n 2, waiting for > subproc_ready(0x258) and child process(0x26C) > 4 4 [main] sh (1464) > ********************************************** > 296 300 [main] sh (1464) Program name: C:\cygwin64\bin\sh.exe (windows > pid 1464) > 52 352 [main] sh (1464) OS version: Windows NT-6.1 > 34 386 [main] sh (1464) > ********************************************** > 233 619 [main] sh (1464) sigprocmask: 0 = sigprocmask (0, 0x1802BBC68, > 0x0) > 287 906 [main] sh 1464 child_copy: cygheap - hp 0x254 low 0x1802DA410, > high 0x1802E46D0, res 1 > 122 1028 [main] sh 1464 child_copy: done --- Process 1464, exception > c0000005 at 00000001800448D0 > > My process (PID=2116) creates the new process (/bin/sh with PID=1464), but > then /bin/sh craps out. > Does that shed any light on what might be the issue? /bin/sh is crashing, for sure, but it's not clear to me why that would be the case. It certainly has something to do with the way it's being invoked. But whether that's the problem (i.e. GIGO) or whether there's something wrong on the Cygwin side that your usage is conveniently bringing to light, I can't say. I'm assuming the former given your description so far. -- Larry _____________________________________________________________________ A: Yes. > Q: Are you sure? >> A: Because it reverses the logical flow of conversation. >>> Q: Why is top posting annoying in email? -- 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