Discussion:
Random fork failures
Carter, Mark Andrew (Andy)
2017-08-25 13:22:08 UTC
Permalink
We are experiencing an increasing frequency of fork failures in moving our 32 bit application to Windows 10.  Rebaseall is only a temporary fix.  Preliminary unit testing using this "https://github.com/s-u/multicore/blob/master/src/forknt.c" code have been successful.  Would it be fruitful to replace the Cygwin fork with this implementation?  I do not want to waste my time repeating another's work or pursuing a known dead end.

- Andy Carter
cyg Simple
2017-08-25 14:38:55 UTC
Permalink
Post by Carter, Mark Andrew (Andy)
We are experiencing an increasing frequency of fork failures in moving our 32 bit application to Windows 10.  Rebaseall is only a temporary fix.  Preliminary unit testing using this "https://github.com/s-u/multicore/blob/master/src/forknt.c" code have been successful.  Would it be fruitful to replace the Cygwin fork with this implementation?  I do not want to waste my time repeating another's work or pursuing a known dead end.
Please forward your conversation to ***@cygwin.com. The
cygwin-developers list is reserved for conversations of developing the
Cygwin DLL.
--
cyg Simple
Corinna Vinschen
2017-08-25 16:16:44 UTC
Permalink
Post by Carter, Mark Andrew (Andy)
We are experiencing an increasing frequency of fork failures in moving
our 32 bit application to Windows 10.  Rebaseall is only a temporary
fix.  Preliminary unit testing using this
"https://github.com/s-u/multicore/blob/master/src/forknt.c" code have
been successful.  Would it be fruitful to replace the Cygwin fork with
this implementation?  I do not want to waste my time repeating
another's work or pursuing a known dead end.
This implementation won't work as desired. It's a nice idea and I tried
and tested something similar once. The downside is that, even if the NT
kernel can fork, the Win32 subsystem doesn't allow this to be done
cleanly. For instance, after a fork, the connection to the current
Windows console, user32 and gdi32 initialization are broken in the child
and more along these lines. I talked to guys at Microsoft about this
and they basically waved their hands.

Move to 64 bit Cygwin is what you should do.

If that doesn't work for you, reduce the number of installed DLLs to
lower the footprint and make sure to reduce BLODA interference.


Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
Loading...