Cygwin error: "-bash: fork: retry: Resource temporarily unavailable"

(assuming Cygwin is installed at C:\Cygwin):

  1. Open Task Manager and close any processes that look to be Cygwin related.
  2. Open C:\Cygwin\bin in Windows Explorer
  3. Verify that dash.exe, ash.exe, rebase.exe, and rebaseall exist in this folder
    • If any of them are missing, re-run Cygwin setup and select the dash, ash, and rebase packages
  4. right-click your C:\Cygwin folder, uncheck Read-only (if its checked), and press OK.
    • When an error about not being able to switch some files comes up, select "Ignore All". Wait for this process to complete.
  5. Browse to C:\Cygwin\bin in Windows Explorer
  6. Right click dash.exe and click "Run as Administrator". A command Prompt should appear with nothing but a $
  7. Type /usr/bin/rebaseall -v, hit enter, and wait for the process to complete.
    • If you get errors about Cygwin processes running, try Step 1 again. If that still doesn't work, Restart your computer into safe mode and try these steps again.
    • A commenter noted that, depending on your settings, you may have to type cd /usr/bin && ./rebaseall -v instead.
  8. Try opening Cygwin again.

This process worked for me. I hope it works for you guys too.

Source: http://cygwin.wikia.com/wiki/Rebaseall


I would like to add the following to the above answers, as it is what I had to do after reinstalling Cygwin:

Navigate to the "/usr/bin" directory (usually, C:\cygwin\bin) and right click, Run as Administrator the file: dash.exe Then, at the $ prompt type the following, hitting enter after each line:

cd /usr/bin/
/usr/bin/peflags * -d 1
/usr/bin/rebaseall -v

What it does is, it marks the dll's as "rebase-able," and then rebases them. You have to have peflags.exe in addition to the above files (in previous answers). You may have to restart windows after doing this and you will definitely need to make sure that there are no processes nor services belonging to cygwin running. (Use task manager, kill any related processes, and then under the services tab look for any service starting with CYG and stop it.)

After doing this, I was able to get cygwin to run without any errors about dll's being loaded to the wrong addresses aka fork errors, etc.

I hope that this helps others, as it was a pain to find.

SOURCE: http://www.cygwin.com/faq.html#faq.using.fixing-fork-failures 
and the rebase README file.

To add on to other answers here, we ran into the same issue but could not run the rebase command from the ash or dash shell. However, when launching the command from the Windows cmd shell, the following worked.

cmd /c "C:\cygwin64\bin\ash.exe /usr/rebaseall -v"

-v is to get verbose output