Regression: Cygwin 3.5.1 freezes when launching several mingw processes in parallel

Takashi Yano takashi.yano@nifty.ne.jp
Sat Mar 2 04:41:04 GMT 2024


On Fri, 1 Mar 2024 17:48:52 +0000
Kate Deplaix wrote:
> Hi,
> 
> Using cygwin 3.6.0-0.66.gc77a5689f7bd I was indeed unable to reproduce the issue.

Thanks for tesing.

> However I'm getting a related but slightly different issue now, where a subprocess randomly (but quite reliably over the whole compilation process) fails with make -j (works fine with -j1 once again)
> 
> Luckily i was able to make a really small test-case this time:
> Using MinGW 11.4.0 with the following test.c file:
> 
> #define UNICODE
> #define _UNICODE
> 
> #include <process.h>
> #include <stdio.h>
> 
> int main() {
>   int ret = _wsystem(L"x86_64-w64-mingw32-gcc -dumpversion");
>   if(ret != 0) printf("FOUND %d\n", ret);
> }
> 
> compile using: x86_64_w64-mingw32-gcc ./test.c
> and run using: for i in $(seq 1 100) ; do ./a & done

Thanks for the test case. I tried this test case, however,
I cannot reproduce the second problem, i.e. all 100 processes
exited normally.

To increase system load, I also tried:

#define UNICODE
#define _UNICODE

#include <process.h>
#include <stdio.h>

int main(int argc, char *argv[]) {
  wchar_t buf[1024];
  swprintf(buf, 1024, L"x86_64-w64-mingw32-gcc test.c -o %s", argv[1]);
  int ret = _wsystem(buf);
  if(ret != 0) printf("FOUND %d\n", ret);
}

and

#!/bin/sh
for i in $(seq 1 200); do ./a.exe $i & done

but, no error was found...

How many cpu cores and how much memory does your system have?

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>


More information about the Cygwin mailing list