X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Chris McIntosh Subject: Re: Resource Temporarily Unavailable Date: Mon, 2 Oct 2006 19:27:20 +0000 (UTC) Lines: 104 Message-ID: References: <4505870D DOT 2090907 AT gmail DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit User-Agent: Loom/3.14 (http://gmane.org/) X-IsSubscribed: yes 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 Nick Deubert gmail.com> writes: > > Chris McIntosh wrote: > > Hello, I work at a company where we have a complicated Linux build. We > > use cygwin to mimic this build on windows for some of our windows > > centric people. > > > > At different times when cygwin forks it will throw a Resource > > temporarily Unavailble error. I am tempted to call this "Random" > > because it doesn't manifest itself until a random time, but once > > manifested it will continue to fail at the exact same spot. This spot > > is different for all users but once it does happen it continues to > > fail. > > > > This is typically in our make flow when it is forking or spawning > > another process to execute a command. > > > > Here is a snip > > > > ../../../../..//class/mfs/engine/disp/gf100_engine.mfs > > /usr/bin/env: ../../../../..//bin/Win32/cfp: Resource temporarily > > unavailable > > makepp: Failed to build target gf100.xml > > > > One thing to note, the command that it fails on is different for all > > users. It actually fails when forking. Another example is > > > > /usr/bin/bash: fork: Resource temporarily unavailable > > make[4]: *** [ObjWin32/.PTreeVisitor.d] Error 128 > > > > After looking at the cygwin source I found that EAGAIN which produces > > this message is mapped to many windows errors. So after more > > investigation I found it to be Win32 error 234 which is > > ERROR_MORE_DATA. I then traced this down to when cygwin calls > > CreateProcessAsUser in spawn.cc > > > > So my question, has anyone seen this before. I don't think it is a > > cygwin bug since it the win api returning this error, but maybe it is > > something to do with the call. > > > > Any pointers or tips would be helpful. > Hi all, > I also have this problem. I use xfce as my desktop and window manager > and after a totally arbitrary amount of time (sometimes 10 mins, > sometimes days) I start getting this error "Failed to fork (Resource > temporarily unavailable)" from the xfce4-panel and it refuses to launch > anything. Xfdesktop usually goes shortly after as well. I also noticed > by the time this starts happening the process stops showing up when I do > a "ps -ef", It doesn't even show up when I pass it a -W either, I have > to kill it from Task Manager and start a new one. About this time I also > start repeatedly getting this exact error as well: > http://www.cygwin.com/ml/cygwin/2006-07/msg00239.html when I build my > companies tool in cygwin (with make-3.80). > > I've reinstalled cygwin several times, tried doing a rebaseall, tried > changing the heap size, and none of that made any difference for me. > (Have not tried the new dll posted in this thread but it was reported > that did not solve his problem). I tried downgrading bash from 3.1-6 to > 3.0-14 and it seemed like it had fixed both problems but then a week > later it returned. I tried setting > "CYGWIN=error_start=c:\cygwin\bin\gdb.exe codepage:oem" and verifyed it > worked but it does not catch the sh.exe crash. > > I use the xfce4 ports from: http://www.amazepc.com/bamanzi/cygwin/xfce4/ > (several versions, it happened with all of them) and have also tried the > pkgs in ftp://sunsite.dk/projects/cygwinports. I had everything working > perfectly for over a year with the xfce ports mentioned, then something > happened to my cygwin install in a power outage so I did a clean > reinstall. Ever since I have had all these nightmare problems. Any > suggestions for what to try/check/install/log/debug would be greatly > appreciated. > Thanks, > Nick > > In my case I tracked the problem down to a large environment block. In windows CreateProcessAsUser you can only pass in an environment string less than 32000 characters. Unless you use Unicode which cygwin does not. A simple fix for this in our build environment was to append a env -i to the front of our command. This removed the user's environment and only allowed our build to use the environment. Our build in this case was adding 29000 worth of characters. I have since changed our build to not add all of these variables. Unfortunately you might not be getting the same error. If you look at the cygwin source there are many errors that get mapped to "Resource Temporarily Unavailable." The way I tracked this down was by using a debug release of cygwin I changed the error messages to the actual windows numbers. That way when my process errored I could see it. Another option is to use strace and look through the log, it lists the Win32 error there. Hope that helps, Chris McIntosh -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/