Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <20030319231105.7413.qmail@web10005.mail.yahoo.com> Date: Wed, 19 Mar 2003 15:11:05 -0800 (PST) From: "Mike W." Subject: No PIDs left, failure to fork, child state waiting for longjmp To: cygwin AT cygwin DOT com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii I love cygwin. But... I think there is a bug in cygwin that has to do with an inability to reuse PID numbers. I think the following messages may show instances of it: http://sources.redhat.com/ml/cygwin/2002-02/msg01188.html http://sources.redhat.com/ml/cygwin/2002-07/msg01894.html http://sources.redhat.com/ml/cygwin/2002-05/msg01333.html http://sources.redhat.com/ml/cygwin/2002-02/msg01361.html http://sources.redhat.com/ml/cygwin/2002-02/msg00304.html http://sources.redhat.com/ml/cygwin/2001-07/msg00382.html http://sources.redhat.com/ml/cygwin/2001-07/msg00193.html and there are many more related messages... once you get the hang of the problem, you can work the search engine. I am an amateur, wanting to use cygwin, and willing to build stuff from others, but incompetent to develop. But here is what I am guessing: fork seems to always pick a larger PID number. Then it runs out of available, larger PID numbers, and fork fails. Then other processes look for the failed fork, and they fail. But why don't we reuse PID numbers? Or can I get a bigger pool of numbers? They never seem to go over 0x??, getting up to about 36000 or so before it blows up. I see the behaviour when I try to compile Image Magick. Rebooting causes the behavior to occur at different places, deep into the configure file, but always when the PID number of recently spawned processes, as seen with the Windows Task Manager under the "Processes" tab, is above about 32000. I can reproduce this variable behaviour.... ;-) Can I supply more information to help in diagnosis? Any work-arounds? Here is a canonical example: (showing many normal lines, then problems) checking for gs EPS writing device... epswrite checking for perl... /usr/bin/perl configure: creating ./config.status config.status: creating Makefile config.status: creating magick/Makefile config.status: creating coders/delegates.mgk config.status: creating coders/Makefile config.status: creating utilities/Makefile config.status: creating tests/Makefile config.status: creating coders/type.mgk config.status: creating coders/type-ghostscript.mgk config.status: creating coders/type-windows.mgk config.status: creating coders/type-solaris.mgk config.status: creating ltdl/Makefile config.status: creating magick/Magick-config config.status: creating Magick++/bin/Makefile config.status: creating Magick++/bin/Magick++-config config.status: creating Magick++/Makefile config.status: creating Magick++/lib/Makefile 7599 [main] bash 36536 sync_with_child: child 36604(0x138) died before initia lization with status code 0x80 41746 [main] bash 36536 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable ./config.status: line 1: /usr/bin/sed: Permission denied config.status: creating Magick++/lib/Magick++/Makefile 686 [main] bash 36692 sync_with_child: child 36724(0xFC) died before initial ization with status code 0x80 1024 [main] bash 36692 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable 10280 [main] bash 36736 sync_with_child: child 36744(0xE8) died before initial ization with status code 0x80 10641 [main] bash 36736 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable 8376 [main] bash 33032 sync_with_child: child 36764(0xEC) died before initial ization with status code 0x80 9131 [main] bash 33032 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable config.status: creating Magick++/demo/Makefile 65 [main] bash 33020 sync_with_child: child 36788(0x1A8) died before initia lization with status code 0x80 386 [main] bash 33020 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable 30592 [main] bash 33020 sync_with_child: child 36748(0x19C) died before initia lization with status code 0x80 30923 [main] bash 33020 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable 43998 [main] bash 33020 sync_with_child: child 36776(0x5C) died before initial ization with status code 0x80 44327 [main] bash 33020 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable 63130 [main] bash 33020 sync_with_child: child 36792(0x1FC) died before initia lization with status code 0x80 63465 [main] bash 33020 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable 1686 [main] bash 2876 sync_with_child: child 33028(0x1A8) died before initial ization with status code 0x80 2030 [main] bash 2876 sync_with_child: *** child state waiting for longjmp ./configure: fork: Resource temporarily unavailable Here is a time when it occured: (showing two normal lines, then problems) config.status: creating Magick++/lib/Magick++/Makefile config.status: creating Magick++/demo/Makefile 5885 [main] bash 36740 sync_with_child: child 36808(0xF8) died before initial ization with status code 0x80 6231 [main] bash 36740 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable config.status: creating Magick++/tests/Makefile 6 [main] bash 36908 sync_with_child: child 36928(0xF8) died before initial ization with status code 0x80 351 [main] bash 36908 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable 6 [main] bash 36892 sync_with_child: child 36940(0xD8) died before initial ization with status code 0x80 339 [main] bash 36892 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable mkdir: cannot create directory `': No such file or directory config.status: error: cannot create directory "" etc. Here is another time: (showing two normal lines, then problems) config.status: creating magick/magick_config.h config.status: executing depfiles commands 56 [main] bash 37140 sync_with_child: child 37144(0xD4) died before initial ization with status code 0x80 355 [main] bash 37140 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable 42 [main] bash 37152 sync_with_child: child 37160(0xE8) died before initial ization with status code 0x80 348 [main] bash 37152 sync_with_child: *** child state waiting for longjmp ./config.status: fork: Resource temporarily unavailable 41 [main] bash 37124 sync_with_child: child 37184(0x1A8) died before initia lization with status code 0x80 348 [main] bash 37124 sync_with_child: *** child state waiting for longjmp ./configure: fork: Resource temporarily unavailable Etc. Thanks! __________________________________________________ Do you Yahoo!? Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop! http://platinum.yahoo.com -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/