After Windows 10 upgraded itself from 10.0 (Build 10240) to 1511 (Build 10586) shell scripts fail with fork errors. This can be demonstrated from a Cygwin64 Terminal window by running a trivial pair of commands. Create these two files in a folder: 1. win1511.pl containing the three lines: my $subShell = "sh win1511.sh arg1 arg2"; print "Running: $subShell\n"; system("$subShell") 2. win1511.sh containing the four lines: #!/bin/bash echo win1511.sh starts sh -c "echo FROM SUBSHELL" # This fails under Windows (10) 1511 echo win1511 all done Then change to the folder and run: perl win1511.pl On a Windows 10 (10240) this reports, as expected: Running: sh win1511.sh arg1 arg2 win1511.sh starts FROM SUBSHELL win1511 all done But on the "upgraded" Windows, it reports something like: Running: sh win1511.sh arg1 arg2 win1511.sh starts 0 [main] sh 7208 C:\cygwin\bin\sh.exe: *** fatal error in forked process - fork: can't reserve memory for parent stack 0x600000 - 0x800000, (child has 0x400000 - 0x600000), Win32 error 487 527 [main] sh 7208 cygwin_exception::open_stackdumpfile: Dumping stack trace to sh.exe.stackdump 0 [main] sh 1336 fork: child -1 - forked process 7208 died unexpectedly, retry 0, exit code 0x100, errno 11 win1511.sh: fork: retry: No child processes 1011664 [main] sh 4084 C:\cygwin\bin\sh.exe: *** fatal error in forked process - fork: can't reserve memory for parent stack 0x600000 - 0x800000, (child has 0x400000 - 0x600000), Win32 error 487 1012796 [main] sh 4084 cygwin_exception::open_stackdumpfile: Dumping stack trace to sh.exe.stackdump 1055452 [main] sh 1336 fork: child -1 - forked process 4084 died unexpectedly, retry 0, exit code 0x100, errno 11 win1511.sh: fork: retry: No child processes 3065101 [main] sh 1744 C:\cygwin\bin\sh.exe: *** fatal error in forked process - fork: can't reserve memory for parent stack 0x600000 - 0x800000, (child has 0x400000 - 0x600000), Win32 error 487 3066077 [main] sh 1744 cygwin_exception::open_stackdumpfile: Dumping stack trace to sh.exe.stackdump 3102454 [main] sh 1336 fork: child -1 - forked process 1744 died unexpectedly, retry 0, exit code 0x100, errno 11 win1511.sh: fork: retry: No child processes 7111887 [main] sh 4100 C:\cygwin\bin\sh.exe: *** fatal error in forked process - fork: can't reserve memory for parent stack 0x600000 - 0x800000, (child has 0x400000 - 0x600000), Win32 error 487 7112715 [main] sh 4100 cygwin_exception::open_stackdumpfile: Dumping stack trace to sh.exe.stackdump 7152061 [main] sh 1336 fork: child -1 - forked process 4100 died unexpectedly, retry 0, exit code 0x100, errno 11 win1511.sh: fork: retry: No child processes 15161677 [main] sh 1648 C:\cygwin\bin\sh.exe: *** fatal error in forked process - fork: can't reserve memory for parent stack 0x600000 - 0x800000, (child has 0x400000 - 0x600000), Win32 error 487 15162561 [main] sh 1648 cygwin_exception::open_stackdumpfile: Dumping stack trace to sh.exe.stackdump 15201626 [main] sh 1336 fork: child -1 - forked process 1648 died unexpectedly, retry 0, exit code 0x100, errno 11 win1511.sh: fork: Resource temporarily unavailable I am running the latest version (which I downloaded after the problem started in case there was a fix already). uname -a reports: CYGWIN_NT-10.0 JCPR-Dell-3 2.3.1(0.291/5/3) 2015-11-14 12:44 x86_64 Cygwin I attach a cygcheck.out