delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2022/01/13/19:11:50

X-Recipient: archive-cygwin AT delorie DOT com
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 53366385840D
Authentication-Results: sourceware.org;
dmarc=none (p=none dis=none) header.from=maxrnd.com
Authentication-Results: sourceware.org; spf=none smtp.mailfrom=maxrnd.com
Subject: Re: proc_waiter: error on read of child wait pipe 0x0, Win32 error 6
To: cygwin AT cygwin DOT com
References: <MWHPR1401MB1951673B53610E3D45F15235E6529 AT MWHPR1401MB1951 DOT namprd14 DOT prod DOT outlook DOT com>
<MWHPR1401MB1951AD1FD95142752195EF0DE6529 AT MWHPR1401MB1951 DOT namprd14 DOT prod DOT outlook DOT com>
<MWHPR1401MB195104100F4D135F78351B86E6529 AT MWHPR1401MB1951 DOT namprd14 DOT prod DOT outlook DOT com>
<9b20c19a-b075-1dd3-d9f3-8cf53c51b1e5 AT gmail DOT com>
<20220114085227 DOT c044e8735fb5d92e341d0b84 AT nifty DOT ne DOT jp>
From: Mark Geisert <mark AT maxrnd DOT com>
Message-ID: <12affe5c-6f2c-ee89-7e21-ac1b91c3d58e@maxrnd.com>
Date: Thu, 13 Jan 2022 16:11:04 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
Firefox/52.0 SeaMonkey/2.49.4
MIME-Version: 1.0
In-Reply-To: <20220114085227.c044e8735fb5d92e341d0b84@nifty.ne.jp>
X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS,
KAM_LAZY_DOMAIN_SECURITY, KAM_NUMSUBJECT, NICE_REPLY_A, SPF_HELO_NONE,
SPF_NONE, TXREP autolearn=no autolearn_force=no version=3.4.4
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
Errors-To: cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com>

Takashi Yano wrote:
> On Wed, 12 Jan 2022 07:41:41 +0100
> Marco Atzeri wrote:
>> On 12.01.2022 07:27, Jay K wrote:
>>> Ok, here is a small demonstration of the problem.
>>>
>>> #include <stdlib.h>
>>> #include <stdio.h>
>>> #include <windows.h>
>>>
>>> unsigned __stdcall thread(void* p)
>>> {
>>>     unsigned i;
>>>     for (i = 0; i < 100; ++i)
>>>      system("./a.exe");
>>>     return 0;
>>> }
>>>
>>> int main()
>>> {
>>> unsigned i;
>>> HANDLE threads[100] = {0};
>>> FILE* f = fopen("a.c", "w");
>>> fprintf(f, "int main() { return 0; }\n");
>>> fclose(f);
>>
>>
>> so you are mixing Cygwin and Windows calls ?
>> That is looking for trouble.
>>
>> Or it is a tentative to produce a test case ?
> 
> I found that the same happens even with pthread rather than
> win32 thread functions.
> 
> #include <stdlib.h>
> #include <pthread.h>
> 
> void *thread(void *p)
> {
> 	system("true");
> 	return NULL;
> }
> 
> int main()
> {
> 	int i;
> 	pthread_t threads[2];
> 
> 	for (i = 0; i < 2; i++)
> 		pthread_create(&threads[i], NULL, thread, NULL);
> 
> 	for (i = 0; i < 2; i++)
> 		pthread_join(threads[i], NULL);
> 
> 	return 0;
> }
> 
> Executing above code results in hang with message:
>        0 [waitproc] a 786 proc_waiter: error on read of child wait pipe 0x0, Win32 error 6
> 

POSIX does not require system() to be thread-safe.  On Cygwin, it isn't.  When I 
ran into this a while back, I implemented an application wrapper around system() 
to serialize calls.  It's tricky because you want to serialize just the mechanism 
of system(), not the programs that the multiple system()s call.

..mark


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

- Raw text -


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