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
cygcheck.out
Description: Binary data
-- 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

