This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Resource Temporarily Unavailable


Nick Deubert <ndeubert <at> 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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]